teaching:exos:paradoxe_anniversaires

Ceci est une ancienne révision du document !


Paradoxe des anniversaires

  • Quelle est la probabilité qu'au moins deux personnes aient leur anniversaire le même jour dans un groupe de 40 personnes ?

Il est plus simple de passer par le calcul de la probabilité complémentaire Pcomp(N), que toutes les N personnes présentes aient leur anniversaire des jours différents. Si on considère une personne à la fois, on multipliera les probabilités indépendantes d'“avoir un anniversaire un jour différent des personnes précédentes” :

  • Pcomp(1) = 1 = 365/365 (trivial pour une seule personne)
  • Pcomp(2) = (365/365) * (364/365) (pour la deuxième personne, seuls 364 jours sur 365 sont adéquats pour avoir des dates différentes)
  • Pcomp(3) = pcomp(2) * (363/365) = 1 * (364/365) * (363/365) (pour la troisième personne, seuls 363 jours sur 365 sont adéquats pour avoir des dates différentes)
  • Pcomp(N) = (365 * 364 * 363 * … * (365 - N + 1)/ (365)^N = (365)! / ( (365-N)! * (365)^N)

Pour 40 personne, la réponse 1-Pcomp(40) = 0.89123

Remarque : discuter de la non-validité de l'approximation de Stirling utilisée.

multiples-occurences-anniversaires.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
Petit programme destiné à répondre à la question suivante :
- Quelle est la probabilité qu'au moins deux personnes aient leur anniversaire
le même jour dans un groupe de 40 personnes.
Hypothèses : l'année fait 365 jours et les naissances des personnes
se distribuent uniformément (pas de jumeaux,...)
Remarque : la solution doit pouvoir être généralisée !
"""
 
from math import log, exp
 
# nombre de possibilités différentes
# (= nombre de jours d'une année dans les exemples)
poss = 365
 
# nombre d'items (personnes présentes)
n = 40
 
# solution : p = poss ! / ( (poss-n) !  * poss^n)
 
pcomp = 1.
for i in range(poss, poss-n, -1):
    pcomp = pcomp * i / poss
 
print("calcul exact : ", pcomp, 1.-pcomp)
 
# calcul suivant l'approximation de Stirling ( ln(j!) ~= j ln(j) - j
# l'approximation est d'autant plus valable que poss est grand et n << poss
pcomps = exp(poss*log(poss)-poss - (poss-n)*log(poss-n) + (poss-n) - n*log(poss))
 
print("Approximation de Stirling : ", pcomps, 1.-pcomps)
  • Quelle est la probabilité de recevoir 40 cartes cadeaux différentes (aucun “double”) sur 216 types différents de cartes distribuées comme jeu-concours aux caisses d'un supermarché
  • Si ce genre d'événement se produit fréquemment, que pouvez-vous en conclure ?
  • Discuter des stratégies appliquées par les personnes qui organisent ce genre de jeu-concours
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/exos/paradoxe_anniversaires.1570987031.txt.gz
  • Dernière modification : 2019/10/13 19:17
  • de villersd