进阶之路

导航

一堆人中,其中两个人的生日是同一天的概率有多大呢?

“哇,你们两个同一天生日耶!”

“你们居然是同一天生的,太幸运了吧!”

在我们的认知里,感觉两个人是同一天生日的概率非常低。

计算其实也很简单,不考虑闰年,一年有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%!

 

posted on 2022-04-01 11:41  中年小Q  阅读(1431)  评论(0编辑  收藏  举报