一个班至少有两个同学生日相同

今天偶然看到一个有趣的问题:叫生日悖论,即:当一个班的人数在50个左右的时候,有很大概率存在至少有两个同学同月同日生的情况,我抱着半信半疑的态度算了下,当班级人数达到53人时,有98%以上的概率发生这种情况,也是蛮有意思的事情。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#jupyter notebook & python3
import numpy as np
import matplotlib.pyplot as plt

from matplotlib.pyplot import plot
%matplotlib inline
y=[]
x=[]
for n in range(2,365):
temp = 1-np.math.factorial(365)/(np.math.factorial(365-n)*(365**n))
if(abs(temp-0.98)<=0.0015):
print(n)
x.append(n)
y.append(temp)
plt.title('probability of no less than 2 students have same birthday')
plt.xlabel('num of students')
plt.ylabel('probability')
plt.plot(x,y,'g--')