"** Combien de personnes auront 50% de chances d'avoir deux (ou plus) personnes avec le même anniversaire? **" C'est.
--La probabilité qu'il y ait des personnes avec la même combinaison d'anniversaire dans le groupe dépasse ** 50% ** de ** 23 personnes **. --Quand 70 personnes se rassemblent, cela dépasse ** 99,9% **
[Birthday Paradox-Wikipedia](https://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E3%81%AE%E3%83% 91% E3% 83% A9% E3% 83% 89% E3% 83% 83% E3% 82% AF% E3% 82% B9)
Même si seulement 70 personnes se rassemblent, la probabilité est supérieure à 99,9%, et il ne faut que 23 personnes pour dépasser 50%.
** * Nous ne considérons pas l'année du faon ou des jumeaux **
birthday_paradox.py
import math
from random import random
n_trials = 50000 #Nombre d'essais par essai
max_people = 100 #Nombre maximum de personnes à vérifier
print('Nombre de personnes,Nombre de fois où un groupe a eu le même anniversaire,Nombre d'essais,probabilité')
for n_people in range(2, max_people + 1):
count = 0 #Nombre de fois où des personnes ont eu le même anniversaire
for _ in range(n_trials):
#Stockez un entier aléatoire de 1 à 365 qui ressemble à un anniversaire dans la liste.
births = []
for __ in range(n_people):
birthday = math.ceil(random() * 365)
births.append(birthday)
#Si le nombre d'éléments à l'exclusion des doublons ne correspond pas au nombre initial d'éléments, il y a un anniversaire en double.
if len(births) != len(set(births)):
count += 1
print(f'{n_people},{count},{n_trials},{count / n_trials}')
Nombre de personnes,Nombre de fois où un groupe a eu le même anniversaire,Nombre d'essais,probabilité
2,105,50000,0.0021
3,390,50000,0.0078
4,773,50000,0.01546
5,1370,50000,0.0274
6,1992,50000,0.03984
7,2853,50000,0.05706
8,3686,50000,0.07372
...
17,15850,50000,0.317
18,17422,50000,0.34844
19,18898,50000,0.37796
20,20602,50000,0.41204
21,22207,50000,0.44414
22,23795,50000,0.4759
23,25531,50000,0.51062 # <-50 à plus de 23 personnes%Au-delà
24,27170,50000,0.5434
25,28517,50000,0.57034
26,29820,50000,0.5964
27,31400,50000,0.628
...
68,49925,50000,0.9985
69,49940,50000,0.9988
70,49952,50000,0.99904 # <-99 quand plus de 70 personnes.9%Au-delà
71,49971,50000,0.99942
72,49970,50000,0.9994
73,49971,50000,0.99942
74,49985,50000,0.9997
75,49987,50000,0.99974
76,49989,50000,0.99978
77,49994,50000,0.99988
78,49994,50000,0.99988
79,49994,50000,0.99988
...
99,50000,50000,1.0
100,50000,50000,1.0 # <-Plus de 100%!!
Recommended Posts