![]() |
Une petite colle concernant les petits problèmes de probabilités qui, l'air de rien, amène à réfléchir à l'instar du paradoxe de Bertrand.
Vous avez un bâton. Vous le coupez
au hasard
en trois morceaux.
Quelle est la probabilité de pouvoir
construire un triangle avec ces morceaux ?
! Un aspect du problème sera de préciser ce que l'on entend par au hasard...
Bonus : on simule ensuite cette trisection au moyen d'un petit programme JavaScript.
Vous avez trouvé 1/4 ? pas mal... et pourquoi pas ln 2 - 1/2...
Réponse & discussion : |
Voici un bâton :
Le voilà coupé en 3 :
Mais, au fait, comment avez-vous fait ?...
Première méthode :
on saisit le bâton en le pinçant au hasard en deux endroits entre le pouce et l'index et on casse.
on obtient ainsi simultanément trois morceaux de longueurs respectives x, y et z.
Afin d'obtenir un triangle (non plat), les inégalités suivantes, dites triangulaires, doivent être vérifiées simultanément :
x < y + z , y < x + z , z < x + y
Afin de simplifier, prenons la longueur du bâton comme unité de mesure. On a z = 1 - x - y et les inégalités ci-dessus conduisent à :
x > 0
y > 0
1 - x - y > 0
x < 1/2
y < 1/2
x + y > 1/2
Les trois premières inégalités régissent l'univers des possibilités; les trois dernières régissent les cas favorables.
C'est un problème de régionnement du plan : dans un repère orthonormé, x joue le rôle des abscisses et y celui des ordonnées; on a tracé les droites d1 : x + y = 1, d2 : x + y = 1/2. La probabilité se calcule aisément en termes d'aires : p = 1/4, l'aire jaune correspondant aux cas favorables, l'aire totale (cas possibles) correspondant au demi-carré de côté 1.
Simulation JavaScript de la méthode 1 : |
<SCRIPT LANGUAGE=JavaScript> function go() </SCRIPT> |
Afin de tester ce programme, vous devrez simplement entrer le nombre de simulations.➔
p ≅ 0,250
Rappelons que la fonction Math.random() retourne un nombre aléatoire compris entre 0 et 1.
» fonctions mathématiques usuelles
Seconde méthode :
1. on coupe le bâton en deux au hasard;
2. on choisit au hasard l'un des deux morceaux obtenus et on le coupe en deux au hasard;
♦ Noter que la probabilité de couper le bâton exactement en son milieu à la première coupe doit être considérée comme nulle dans ce problème concret. Mais on peut insérer ce cas dans la méthode ci-dessus en parlant de plus long au sens large et conduisant à un triangle dit plat.
♦ Si, à l'étape 2, on a choisi de conserver le plus grand morceau de longueur x, en recoupant le plus petit au hasard, on obtient deux morceaux de longueur y et z et dans un tel cas la probabilité cherchée est nulle car une des trois inégalités triangulaires n'est pas vérifiée puisque l'on a : x > y + z. Il nous faut donc couper le plus grand et, pour cela, nous avons une chance sur 2.
La solution est plus subtile que précédemment et le résultat inattendu. Étudions-la :
Soit a un nombre compris entre 0 et 1/2; calculons la probabilité de pouvoir construire un triangle sachant que x = a < ½. L'univers des cas possibles est régi par :
x > 0 : réalisé car x = a > 0;
y > 0 et y < 1 - a;
z = 1 - x - y > 0 : réalisé sous la condition ci-dessus.
Nos chances de construction ne dépendant donc que de y; la plage de variation de y étant d'étendue 1 - a. Qu'en est-il alors de nos inégalités triangulaires ? :
x < y + z : réalisé !
y < x + z : y < ½
z < x + y : x + y > ½ ou encore y > ½ - a
Ainsi, la plage de variation pour y (cas favorables) est donc d'étendue a et la probabilité d'obtenir un triangle est alors pa = a/(1 - a).
Lorsque a varie dans l'intervalle [0;½], on
obtient toutes les valeurs possibles de x, également réparties sur cet
intervalle, et la probabilité cherchée est alors la valeur moyenne
p des pa
: discrétisons les valeurs de x et passons à la limite :
On subdivise [0;½] en n intervalles
[xi,xi+1]de même
étendue : xi+1 - xi =
½/n = 1/2n
= dxi.
La valeur moyenne cherchée est alors :
p = lim n→∞ 1/n × Σ[i=o,i=n] xi/(1 - xi) = 2 × lim n→∞ Σ[i=o,i=n] xi/(1 - xi) dxi
= 2 × ∫[o,½] x/(1 - x)
dx
car on a reconnu ici une somme de Riemann attachée à la fonction x → x/(1 - x) sur l'intervalle [0;1/2].
En remarquant que x/(1 - x) = (x - 1 + 1)/(1 - x) = - 1 + 1/(1 - x), on obtient facilement p = 2 × (- ½ - ln(½)) = 2ln2 - 1.
où ln désigne la fonction logarithme népérien. Sans oublier maintenant de multiplier par ½ car nous n'avons qu'une chance sur 2, comme dit plus haut, de couper le "bon" morceau :
Simulation JavaScript de la méthode 2: |
<SCRIPT
LANGUAGE=JavaScript>
function go2() |
➔
Pour tester ce programme vous devrez simplement entrer le nombre de simulations. Pour 100 000 essais, le programme répond 0,19159. Et pour 1 000 000 , un très beau 0,192904 ≅ ln2 - 0,5.Rappel : La fonction Math.random() retourne un nombre aléatoire compris entre 0 et 1.
» fonctions mathématiques usuelles dans JavaScript
» La plage de variation de y étant entre 0 et 1 - a = 1 - x, il s'agit d'obtenir y < 1/2 dans le champ de valeurs Math.random()*(1-x). La programmation de la méthode nous conduit alors à une solution en termes d'aires à l'instar de la première méthode, en écrivant :
0 < x < 1/2;
y(1 - x) < 1/2, y variant de 0 à 1;
x + y > 1/2 devient alors x + y(1 - x) >1/2.
Les cas possibles correspondent au carré de côté 1, les cas favorables correspondent à l'aire comprise entre les deux hyperboles d'équation :
sur l'intervalle [0;1/2], c'est à dire l'aire sous la courbe de la fonction :
On retrouve bien l'intégrale précédente.
➔ On trouvera dans la revue Repères des IREM, une étude de ce problème à la fois théorique et pratique (sur tableur) : n° 46 - janvier 2002, Simulation et modélisation par Joëlle Fontana et Maryse Nogues (Irem de Montpellier).