Adloun

mathématiques appliquées (ECG 1re année) · Chapitre 6 · Exercice

Le paradoxe des anniversaires

Probabilités et statistiques · Calculer une probabilité · niveau 3 (difficile)

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

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre