Pile ou face, dix mille fois : la fréquence danse autour de la probabilité
Lance une pièce dix fois. Tu t'attends à cinq piles ? Exactement cinq piles sur dix lancers, cela n'arrive qu'environ une fois sur quatre. Le reste du temps, tu obtiens 3, 6, 7 piles… sans que la pièce soit truquée. Ce flottement obéit à des lois précises, que Python va te faire découvrir en lançant la pièce dix mille fois.
1. Le vocabulaire
Une expérience aléatoire à deux issues oppose un succès, de probabilité p, à un échec, de probabilité 1 − p. La répéter n fois, de façon indépendante, produit un échantillon de taille n. La fréquence observée du succès est f = nombre de succès ÷ n.
Exemple : on lance un dé équilibré, le succès est « obtenir 6 », donc p = 1/6 ≈ 0,167. Un échantillon de 60 lancers donne 13 six, f = 13/60 ≈ 0,217. La probabilité p est fixe ; la fréquence f change d'un échantillon à l'autre : c'est la fluctuation d'échantillonnage.
2. Simuler un échantillon avec Python
La fonction random() du module random renvoie un décimal au hasard entre 0 (compris) et 1 (exclu), uniformément : la probabilité que random() soit inférieur à p vaut exactement p, et le test random() < p est un succès de probabilité p. Pour un dé, randint(1, 6) renvoie un entier de 1 à 6, bornes comprises.
from random import random
def frequence(n, p):
succes = 0
for i in range(n):
if random() < p:
succes = succes + 1
return succes / n
La boucle répète n fois l'expérience, le compteur succes augmente à chaque succès, et la fonction renvoie la fréquence observée. Python écrit les décimaux avec un point : frequence(100, 0.5) simule 100 lancers d'une pièce équilibrée. Trois appels m'ont donné 0,47 ; 0,55 ; 0,51 ; toi, tu obtiendras d'autres valeurs, c'est normal.
3. La loi des grands nombres
Lors d'une exécution, frequence(n, 0.5) a donné 0,3 pour n = 10, 0,47 pour n = 100, 0,513 pour n = 1 000 et 0,4992 pour n = 100 000. Les fréquences se rapprochent de p = 0,5 et les oscillations s'amortissent : c'est la loi des grands nombres, énoncée par Jacques Bernoulli dans un ouvrage publié en 1713. Quand la taille de l'échantillon augmente, la fréquence observée se stabilise autour de la probabilité.
Piège : après sept piles d'affilée, la pièce ne « doit » rien, le lancer suivant a toujours une chance sur deux de donner face. La fréquence se rapproche de 0,5 non par compensation, mais parce qu'un écart de quelques lancers devient négligeable divisé par un n immense.
4. Mesurer la fluctuation : la règle du 1/√n
Simulons N échantillons de taille n. Pour n = 100 et p = 0,5, sur 1 000 échantillons simulés, environ 96 % des fréquences tombent entre 0,4 et 0,6, c'est-à-dire vérifient |f − p| ≤ 0,1. Or 0,1 = 1/√100. Règle générale : dans au moins 95 % des échantillons de taille n environ, |f − p| ≤ 1/√n. Ce programme mesure la proportion :
from math import sqrt
def proportion(N, n, p):
compteur = 0
for k in range(N):
f = frequence(n, p)
if abs(f - p) <= 1 / sqrt(n):
compteur = compteur + 1
return compteur / N
Exemple avec le dé : p = 1/6 et n = 600 donnent 1/√600 ≈ 0,041. La fréquence de « 6 » sur 600 lancers se situe donc presque toujours entre 0,126 et 0,208 ; 0,25 ferait soupçonner le dé. Conséquence : diviser la marge par 2 exige de multiplier n par 4. La précision coûte cher.
5. Estimer une probabilité inconnue
Une punaise retombe pointe en l'air ou sur le côté, probabilité p inconnue. On la lance 400 fois : 248 fois pointe en l'air, f = 0,62. Comme 1/√400 = 0,05, il est vraisemblable que p soit compris entre 0,57 et 0,67. C'est l'estimation d'une probabilité par une fréquence, le principe des sondages : 1 000 personnes tirées au hasard donnent une marge d'environ 1/√1000 ≈ 0,03, soit 3 points.
À retenir
- Échantillon de taille n : n répétitions indépendantes d'une expérience à deux issues ; fréquence observée f = nombre de succès ÷ n.
- La probabilité p est fixe, la fréquence f fluctue d'un échantillon à l'autre.
- Loi des grands nombres : quand n augmente, f se stabilise autour de p.
- Dans au moins 95 % des échantillons environ, |f − p| ≤ 1/√n ; diviser cette marge par 2 demande un échantillon 4 fois plus grand.
- Quand p est inconnue, la fréquence observée sur un grand échantillon l'estime, à 1/√n près.
★ Pour aller plus loin
En 1777, Buffon calcule la probabilité qu'une aiguille lâchée sur un parquet chevauche une rainure : elle fait intervenir π ! Répéter l'expérience des milliers de fois permet donc d'estimer π par une fréquence. Lancer des dés pour calculer est devenu la méthode de Monte-Carlo, formalisée dans les années 1940 par Stanislaw Ulam et John von Neumann. Le nom vient du casino où, le 18 août 1913, la roulette est tombée 26 fois de suite sur le noir : persuadés que le rouge « devait » sortir, les joueurs ont perdu des fortunes. C'est le sophisme du joueur.
Enfin, random() ne connaît pas le vrai hasard : ses nombres pseudo-aléatoires sortent d'une formule déterministe lancée depuis une graine, que seed() permet de fixer pour rejouer la même suite.
Sources pour creuser
- Livres : Mickaël Launay, « Le Grand Roman des maths » (Flammarion) ; Gérard Swinnen, « Apprendre à programmer avec Python 3 » (Eyrolles, libre en ligne).
- Vidéos : sur YouTube, cherche « loi des grands nombres » sur les chaînes « Micmaths » ou « ScienceEtonnante », et « Monka échantillonnage seconde Python » (Yvan Monka).
- Institutionnel : lumni.fr (lycée, mathématiques) ; docs.python.org/fr/3/ (module random) ; eduscol.education.fr (programme de Seconde).