School 47

Le hasard n'a pas de mémoire : indépendance, arbres et simulation en Python

Première · Mathématiques · environ 20 min

Une pièce vient de tomber cinq fois de suite sur Pile : beaucoup parieraient sur Face, « qui doit bien finir par sortir ». Erreur : la pièce n'a pas de mémoire, le sixième lancer est indépendant des cinq premiers.

1. Deux événements indépendants

Définition. Deux événements A et B sont indépendants lorsque P(A ∩ B) = P(A) × P(B).

Si P(A) ≠ 0, comme P_A(B) = P(A ∩ B)P(A), cela revient à P_A(B) = P(B) : savoir que A est réalisé ne change pas la probabilité de B.

Exemple 1 (un dé équilibré). A = « pair » = {2 ; 4 ; 6} et B = « au plus 2 » = {1 ; 2}. A ∩ B = {2}, donc P(A ∩ B) = 16, et P(A) × P(B) = 12 × 13 = 16 : A et B sont indépendants. Avec C = « au plus 3 », P(A ∩ C) = 16 mais P(A) × P(C) = 12 × 12 = 14 : A et C ne sont pas indépendants. Seul le calcul tranche, pas l'intuition.

Exemple 2. On tire au hasard un élève d'un lycée de 200 élèves : 80 font du sport (S), 50 de la musique (M), 20 les deux. P(S) = 0,4, P(M) = 0,25 et P(S ∩ M) = 0,1 = 0,4 × 0,25 : S et M sont indépendants. La proportion de musiciens est la même chez les sportifs (20 sur 80) que dans tout le lycée (50 sur 200).

Ne confonds pas indépendants et incompatibles. Incompatibles signifie A ∩ B = ∅. Si P(A) et P(B) sont non nulles, deux événements incompatibles ne sont jamais indépendants : P(A ∩ B) = 0 alors que P(A) × P(B) > 0. Savoir que A est réalisé t'apprend même que B ne l'est pas !

Propriété (à savoir démontrer). Si A et B sont indépendants, alors Ā et B sont indépendants.

Démonstration. B est la réunion des événements incompatibles A ∩ B et Ā ∩ B, donc P(Ā ∩ B) = P(B) − P(A ∩ B) = P(B) − P(A) × P(B) = (1 − P(A)) × P(B) = P(Ā) × P(B). ∎

2. Une succession d'épreuves indépendantes

Quand l'issue d'une épreuve n'influence pas la suivante (lancers successifs, tirages avec remise…), on dessine un arbre dont les branches du second niveau portent les mêmes probabilités quel que soit le premier résultat. On multiplie les probabilités le long d'un chemin, et on additionne celles des chemins qui réalisent un événement.

Exemple 3. Inès réussit un lancer franc avec la probabilité 0,7, et ses tirs sont indépendants. Elle tire deux fois (R : réussi, R̄ : raté).

 ┌─ 0,7 ─ R 0,7 × 0,7 = 0,49
 ┌─ 0,7 ─ R┤
 │ └─ 0,3 ─ R̄ 0,7 × 0,3 = 0,21
 ──┤
 │ ┌─ 0,7 ─ R 0,3 × 0,7 = 0,21
 └─ 0,3 ─ R̄┤
 └─ 0,3 ─ R̄ 0,3 × 0,3 = 0,09

P(exactement un panier) = 0,21 + 0,21 = 0,42 ; P(deux paniers) = 0,49 ; P(aucun panier) = 0,09. Contrôle : 0,49 + 0,42 + 0,09 = 1. Pour n tirs, P(au moins un panier) = 1 − 0,3ⁿ, en passant par l'événement contraire « aucun panier ».

3. Simuler l'expérience en Python

random(), du module random, renvoie un nombre décimal au hasard dans [0 ; 1[. random() < 0.7 est donc vrai avec la probabilité 0,7 : il simule un tir.

from random import random

def deux_tirs():
 paniers = 0
 for k in range(2):
 if random() < 0.7:
 paniers = paniers + 1
 return paniers

def frequence(n):
 compteur = 0
 for i in range(n):
 if deux_tirs() == 2:
 compteur = compteur + 1
 return compteur / n

Les appels à random() étant indépendants, les deux tirs simulés le sont aussi. frequence(10000) renvoie la fréquence de « deux paniers » sur 10 000 simulations : environ 0,49 (valeur différente à chaque appel). Plus n est grand, plus la fréquence se stabilise près de la probabilité ; un écart supérieur à 1√n (0,01 ici) est rare.

À retenir

  • A et B sont indépendants lorsque P(A ∩ B) = P(A) × P(B) ; si P(A) ≠ 0, cela revient à P_A(B) = P(B).
  • Indépendants ne veut pas dire incompatibles (A ∩ B = ∅).
  • Si A et B sont indépendants, Ā et B le sont aussi.
  • Pour des épreuves indépendantes : on multiplie le long d'un chemin, on additionne les chemins, et « au moins un » = 1 − P(aucun).
  • En Python, random() < p simule un succès de probabilité p ; sur un grand nombre de simulations, la fréquence approche la probabilité.

★ Pour aller plus loin

Le 18 août 1913, au casino de Monte-Carlo, la roulette est tombée 26 fois de suite sur le noir. Des joueurs ont misé des fortunes sur le rouge, qui « devait » sortir : c'est l'erreur du joueur (ou sophisme de Monte-Carlo), car chaque tour était indépendant des précédents.

Dans les années 1940, Stanislaw Ulam et John von Neumann mettent au point le calcul par milliers de simulations au hasard ; leur collègue Nicholas Metropolis le baptise méthode de Monte-Carlo.

Ironie : random() n'est pas vraiment aléatoire ; un algorithme déterministe (le Mersenne Twister) produit des nombres pseudo-aléatoires.

Sources pour creuser

  • Livres : Ivar Ekeland, « Au hasard. La chance, la science et le monde » (Seuil, 1991) ; Gérard Swinnen, « Apprendre à programmer avec Python 3 » (Eyrolles, version libre en ligne).
  • Vidéos : chaîne YouTube « Yvan Monka » (cherche « événements indépendants Monka ») ; chaîne « Les Bons Profs » (cherche « indépendance Les Bons Profs »).
  • Institutionnel : docs.python.org/fr/3/library/random.html ; eduscol.education.fr (programme de spécialité de Première).