一堆人中,其中两个人的生日是同一天的概率有多大呢?
“哇,你们两个同一天生日耶!”
“你们居然是同一天生的,太幸运了吧!”
在我们的认知里,感觉两个人是同一天生日的概率非常低。
计算其实也很简单,不考虑闰年,一年有365天。其中一个人是365天里的一天,另一个要是同一天的话,就是1/365,0.274%的几率。
1/365 Out[2]: 0.0027397260273972603
那如果有3个人,那概率是多少呢?
第一个人占了365天里的一天,第二个人如果不同天的话,只能在364天里选一天,同理第三个人只能在363里选一天。不在同一天的概率就是 p = (364/365)*(363/365),同一天的概率就是1-p
1 - (364/365)*(363/365) Out[3]: 0.008204165884781345
那如果有n个人,概率是多少呢?直接写代码。
def probability(n):
days = 365
p = 1
for i in range(n):
p *= (days-i)/days
print(f"{n}: {1-p}")
跑一下试试:
for i in range(5, 100, 5):
probability(i)
5: 0.02713557369979347
10: 0.11694817771107768
15: 0.25290131976368646
20: 0.41143838358058027
25: 0.568699703969464
30: 0.7063162427192688
35: 0.8143832388747153
40: 0.891231809817949
45: 0.940975899465775
50: 0.9703735795779884
55: 0.9862622888164461
60: 0.994122660865348
65: 0.9976831073124921
70: 0.9991595759651571
75: 0.9997198781738114
80: 0.9999143319493135
85: 0.9999759973260097
90: 0.9999938483561236
95: 0.9999985601708488
结果看出:当人数达到30人时,已经有70%概率,当60人时,超过99%!
浙公网安备 33010602011771号