Le paradoxe des anniversaires
Exercice · niveau 3 (difficile) · mathématiques appliquées (ECG 1re année), chapitre 6 — Probabilités et statistiques · Calculer une probabilité
Énoncé
Le paradoxe des anniversaires. Écrire une fonction Python qui calcule la probabilité qu'au moins deux personnes parmi partagent leur date de naissance. À partir de quel dépasse-t-elle ? Comparer à une simulation.
Corrigé
import numpy.random as rd
def p_anniversaire(n):
# p = probabilite que les n dates soient DEUX A DEUX DISTINCTES
p = 1.0
for k in range(n):
p = p * (365 - k) / 365
return 1 - p
def simulation(n, tirages=100000):
succes = 0
for _ in range(tirages):
dates = [rd.randint(0, 365) for _ in range(n)]
if len(set(dates)) < n:
succes = succes + 1
return succes / tirages
Le calcul passe par l'événement contraire : que les dates soient deux à deux distinctes. La première personne est libre, la deuxième doit éviter date, la troisième , et ainsi de suite :
Le seuil est : la probabilité y vaut , contre pour . La simulation sur tirages donne environ à près — compatible.
Pourquoi cela surprend. On pense au nombre de personnes ( pour jours), alors que ce qui compte est le nombre de paires : , du même ordre que . La question « quelqu'un partage-t-il mon anniversaire ? » est tout autre, et demande personnes pour atteindre une chance sur deux.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.