python生日悖论分析_python 生日悖论概率计算。

生日悖论指如果一个房间里有23 或以上人,那么至少有两个人生日相同的 概率大于50%。编写程序,输出在不同随机样本数量下,23 个人中至少两个人生日相同的概率。

from random import randint

def list_birth():

list_birth=[]

for i in range(23):

x=randint(1,12)

if x in [1,3,5,7,8,10,12]:

y=randint(1,31)

elif x==2:

y=randint(1,28)

else:

y=randint(1,30)

list_birth.append((x,y))

return list_birth

#建立生日日期对的列表,这里也可以用365天来算

def set_birth():

set_birth=set(list_birth())

return set_birth

#转换成集合是为了去重,若集合长度小于23,则说明,有生日一样的日期被去掉了

def main(count):

n=0

for i in range(count):

list_birth()

set_birth()

if len(set_birth())<23:n=n+1

chance=n/count #计算去重的次数占总循环次数的比例,即概率

print("{:.2%}".format(chance))

main(10000)

标签:set,randint,python,23,list,birth,悖论,生日,def

来源: https://blog.csdn.net/qq_52531977/article/details/111176369

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值