python 生日悖论概率计算。
2017-08-31 15:02
639 查看
生日悖论指如果一个房间里有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)
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)
相关文章推荐
- 生日悖论的Python实现
- LightOJ 1104 Birthday Paradox 概率(生日悖论)
- 【Python】Python_learning5:使用python计算生日日期
- 有趣的概率算法--生日悖论
- 利用python对中文文本数据进行LDA训练、计算概率距离
- Light oj 1104 Birthday Paradox (生日悖论----概率)
- 悖论:假设一年365天,那么,至少有多少人使得有两人是同样生日的概率会超过1/2呢?
- Python3简单实例计算同花的概率代码
- python概率计算
- 科学计算——概率统计计算机模拟——Python
- C++/ python 计算硬币正面朝上的概率
- Python计算斗牛游戏概率算法实例分析
- LightOJ1104---Birthday Paradox(生日悖论(概率))
- LightOj 1104 - Birthday Paradox(生日悖论概率)
- Python计算斗牛游戏的概率
- 第一次用python:计算概率矩阵
- 概率,悖论,以及理性人原则(python实现)
- Problem #3288 成绩计算(python实现)
- sudo、磁盘结构、echo,awk,python计算、RAID0和1的区别
- python for android : 贷款等额本金每月还款额计算