ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges

 Trisection aléatoire d'un bâton          niveau Sup

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...

Si vous séchez après avoir bien cherché : »


© Serge Mehl - www.chronomath.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Réponse & discussion :

Voici un bâton :

Le voilà coupé en 3 :

Mais, au fait, comment avez-vous fait ?...

Première méthode :    

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  à :

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()
{
n = prompt("Nombre d'essais : ",100000);
if (n == null) {return} else {n = eval(n)}
s=0;
for (i = 1;i <= n;i++)
{
x=Math.random();
y=Math.random();
if (y < x) {aux = y;y = x;x = aux}
y=y - x;
if (x < .5 && y < .5 && x + y > .5){s++};
}
alert("p = "+s/n+"\n"+"pour "+n+" essais")
}

</SCRIPT>

    Afin de tester ce programme, vous devrez simplement entrer le nombre de simulations.
       Pour 1 million d'essais,
le programme répond

p ≅ 0,250

» fonctions mathématiques usuelles



Seconde méthode :   

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 :

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 ? :

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 :

p = ln2 - 0,5 ≅ 0,193

Simulation JavaScript de la méthode 2:         


<SCRIPT LANGUAGE=JavaScript>

function go2()
{
n=prompt("Nombre d'essais : ",100000);
if (n==null) {return} else {n=eval(n)}
s=0
for (i=1;i<=n;i++)
{
x=Math.random();
if (x<.5)
{
y=Math.random()*(1-x);
if (y<.5 && x+y>.5){s++};
}
}
alert("p = "+s/n+"\n"+"pour "+n+" essais")
}
}

</SCRIPT>

    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.

» 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).


© Serge Mehl - www.chronomath.com