python数学--假设班里25个同学,那么有生日相同的概率是多少?

同一个班级有生日相同的概率。

一个班级有25个同学,有生日在同一天的概率是多少?

python数学--假设班里25个同学,那么有生日相同的概率是多少?

代码:

python数学--假设班里25个同学,那么有生日相同的概率是多少?

import numpy as np 
from numpy import random
NUM_STUDENT = 25
NUM_EXER = 10000
count=0
for i in range(NUM_EXER):
 birtdays = []
 for j in range(NUM_STUDENT):
 birtdays.append(np.random.randint(356))
 if len(set(birtdays)) < NUM_STUDENT:
 count +=1
print(count/NUM_EXER)

用python重复10000次试验,概率为57.6%。只要有25位同学,就有超过一半的可能性有可能生日在同一天。

直接计算:

计算不出现相同生日的概率:

python数学--假设班里25个同学,那么有生日相同的概率是多少?

出现相同生日的概率是:1−p 1-p1−p

当n=25,利用python计算:

python数学--假设班里25个同学,那么有生日相同的概率是多少?

def factorial(n):
 a = 1
 for i in range(1, n+1):
 a = a*i
 return a
k = 1 - factorial(365)/(factorial(365-NUM_STUDENT)*365**NUM_STUDENT)
print(k)

输出56.8%

多次试验都有一定误差,也许是python计算四舍五入?还是哪里出错了?

后记

为什么会出现这样的情况?

python数学--假设班里25个同学,那么有生日相同的概率是多少?

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

相关推荐