python语言进行生日悖论分析--随机试验方法

问题:生日悖论指如果一个房间里有23人或以上,那么至少两个人生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23个人中至少两个人生日相同的概率。
(1)生成23个【1,365】之间的随机数,如果该23个随机数中有重复元素,则记count=1,否则count=0。
(2)将第一步重复n次(根据大数定律,n越大,概率越接近真实值),看n次中count=1的次数,记为m。
(3)m除以n即为至少两个人生日相同的概率。
代码:
import random
def func(lst):#定义函数,判断列表中是否有重复元素
lst1=set(lst)
if len(lst)>len(lst1):
return True
else:
return False
count=0
for num in range(10000):#模拟10000次随机试验
birthday=[]
for i in range(23):
a=random.randint(1,365)#生成【1,365】之间的23个随机整数
birthday.append(a)
if func(birthday):#如果列表中有重复元素,则为True
count=count+1
最后,用count/10000,即为概率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值