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

import random

构建一个函数,利用集合的特点:集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。

如果列表lst转换成集合再转变成列表lst1后,如果lst和lst1的长度相同,说明23个人在本次样本中没有生日日期相同的;如果lst和lst1的长度不相同,len(lst)>len(lst1),说明23个人在本次样本中存在生日日期相同的同学。

def duplicate(lst):

lst1=set(lst)

if len(lst)>len(lst1):

return True

else:

return False

构造generate函数,这个函数每调用一次,便会创建一个新的列表birthday,列表birthday中的元素个数便是传入的参数numbers。最后,函数的返回值是生成的birthday列表。

random.randint(1,365):随机生成1~365之间的整数;

random.randrange(1,365,2):随机生成1~365之间的奇数;

random.uniform(1,365):随机生成1~365之间的浮点数。

def generate(numbers):

birthday=[]

for i in range(numbers):

birthday.append(random.randint(1,365))

return birthday

构造match函数,将学生的数量和样本的数量传入函数。样本数量越大,分析概率越准确。

def match(students,samples):

count=0

birthday=[]

for i in range(samples):

birthday=generate(students)

if duplicate(birthday):

count+=1

return count

students=23

simulations=100000

count=match(students,simulations)

rate=(float(count)/simulations)*100

print("rate is %f%%"%rate)

本代码根据输入的simulations,获得的概率,可以看出,概率稳定在0.5附近。

python中生日悖论分析_python实现生日悖论分析相关推荐

  1. python的用途实例-python中pass语句意义与作用(实例分析)

    想必大家都是刚刚才开始接触python这门语言的,今天这篇文章就来带大家来了解一下python这门语言之中常常会用到的一个语句pass语句.想必大家都很好奇python中pass作用是什么,接下来我就 ...

  2. python中for循环缩进_Python减少循环层次和缩进的技巧分析

    本文实例分析了Python减少循环层次和缩进的技巧.分享给大家供大家参考,具体如下: 我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和 ...

  3. python中如何定义颜色_Python图像处理之颜色的定义与使用分析

    本文实例讲述了Python图像处理之颜色的定义与使用.分享给大家供大家参考,具体如下: python中的颜色相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪 ...

  4. python中max函数用法_Python中max函数用法实例分析

    Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...

  5. python中write什么意思_python file write () 方法概括及作用分析(实例)

    今天这篇文章我们来了解一下pythonwrite(),我会在这篇文章之中来讲解python中write方法以及pythonwrite属性而且还会将它能用在python编程之中的什么地方来进行说明.废话 ...

  6. python中while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  7. python中pass的含义_python中pass语句意义与作用(实例分析)

    想必大家都是刚刚才开始接触python这门语言的,今天这篇文章就来带大家来了解一下python这门语言之中常常会用到的一个语句pass语句.想必大家都很好奇python中pass作用是什么,接下来我就 ...

  8. python中sleep函数用法_python中sleep函数用法实例分析

    本文实例讲述了python中sleep函数用法.分享给大家供大家参考.具体如下: Python中的sleep用来暂停线程执行,单位为秒 #------------------------------- ...

  9. python中sleep的用法_python中sleep函数用法实例分析

    本文实例讲述了python中sleep函数用法.分享给大家供大家参考.具体如下: Python中的sleep用来暂停线程执行,单位为秒 #------------------------------- ...

  10. python中random模块用法_Python中random模块用法实例分析

    本文实例讲述了Python中random模块用法.分享给大家供大家参考.具体如下: import random x = random.randint(1,4); y = random.choice([ ...

最新文章

  1. 黄金矿工游戏demo
  2. 利用localStorage本地储存js文件
  3. vmware下找不到hgfs
  4. linux 远程权限不够,Eclipse连接远程Hadoop集群开发时权限不足问题解决方案
  5. SQL Server 2005中专用管理员连接 (DAC) 使用技巧修改系统表的方法
  6. Spring 环境搭建与IOC HelloWorld
  7. Google Chrome 最新市场份额
  8. 两个字符串 char* a, char* b,输出b在a中的位置次序。
  9. java中null+和null+null的深入理解
  10. Kinect unity三维重建
  11. Halcon 3D 1 读取3d数据
  12. Fabric共识机制
  13. 人工智能:神经网络与深度学习
  14. 【Unity】UI面板:倒计时器
  15. Python学习笔记7-函数
  16. 55ide游戏引擎(原赤兔引擎)教程1:认识引擎
  17. 近年来计算机的就业情况图表,巧用Excel函数实现动态图表的制作
  18. bbr是什么?有什么用?如何安装使用?
  19. PWN入门(3)覆盖堆栈上的变量
  20. UCF Local Programming Contest 2012(Practice)E. Pete's Pantry 【模拟】

热门文章

  1. APP下载域名链接在微信被封,被拦截该如何处理
  2. bootmgr快速修复win7_微软官方安装卸载修复工具、恶意软件删除工具,了解下!...
  3. python入门教程廖雪峰-Python 2.7教程
  4. javap命令使用示例
  5. 第一章 网络编程基础
  6. ChatGPT 相关资料收集
  7. 想请问各位有没有小红书自动发布编辑图文的软件
  8. CentOS6.5 部署***管理系统(StrongSwan+iKEv2+Freeradiu+Mysql+Daloradius)
  9. C语言基础之运算符、分支语句、循环语句、函数
  10. C语言 游戏 俄罗斯方块 最全代码 c入门必学