python数学--假设班里25个同学,那么有生日相同的概率是多少?
同一个班级有生日相同的概率。
一个班级有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位同学,就有超过一半的可能性有可能生日在同一天。
直接计算:
计算不出现相同生日的概率:
出现相同生日的概率是:1−p 1-p1−p
当n=25,利用python计算:
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开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。
相关推荐
computermaths 2020-06-03
xceman 2020-10-13
算法与数学之美 2020-10-07
Anscor 2020-10-05
liwg0 2020-09-08
数学爱好者 2020-08-31
thermodynamicB 2020-08-11
夕加加 2020-07-20
willowwgx 2020-07-18
kuoying 2020-07-16
Anscor 2020-07-14
starletkiss 2020-07-08
kingzone 2020-06-27
xceman 2020-06-27
算法与数学之美 2020-06-21
kuoying 2020-06-21
秒懂数学 2020-06-17