模拟蒙蒂霍尔悖论游戏
实验报告
模拟蒙蒂霍尔悖论游戏
实验目的
(1)了解蒙蒂很尔悖论的内容和游戏规则。
(2)熟练运用字典方法和集合运算。
(3)熟练运用异常处理结构,防止用户非法输人。
(4)了解断言语句assert的用法。
(5)熟练运用for循环遍历序列中的元素。
(6)熟练运用while循环,并掌握退出循环的条件设计与实现。
(7)熟练运用异常处理结构,防止用户非法输入.
(8) 熟练掌握多函数定义与调用。
(9)养成时刻注意各级代码缩进级别的习惯。
实验内容
假设你正参加一个有奖游戏节目,前方有3道门可以选择,其中一个后面是汽车另外两个后面是山羊。你选择一个门,例如1号门,主持人当然知道每个门后面是什么且打开了另一个门,例如3号门,后面是一只山羊。这时,主持人会问你:“你想改选2好们吗?”,然后根据你的选择确定最终要打开的门,并确定你获得山羊(输)或者汽车(赢)。
编写程序,模拟上面的游戏。
相关参考资料
思维
链接: [纭昀芸yun]
断言语句assert的用法
链接:[张一鸣]
图片:
图片:
参考代码
相应代码如下
# 蒙蒂霍而悖论游戏
# 引入randrange函数随机生成数字
from random import randrange# 定义初始化门函数,在三个门中随机选择一个放汽车,使用字典存放
def init():result={i:"goat" for i in range(3)}r=randrange(3)result[r]='car'return result# 模拟游戏的核心代码
def start():# 初始化门doors = init()while True:# 控制选择的第一个门数是0、1、2try:firstDoorNum = int(input("choose a door:"))assert 0<=firstDoorNum<=2breakexcept:print("door number must be 0,1,2")# 主持人查看剩余两个门后情况 for door in doors.keys()-{firstDoorNum}:if doors[door]=="goat":# 打开其中一个为山羊的门print('"goat" behind the door',door)# 获取第三个门号,让玩家选择thirddoor=(doors.keys()-{door,firstDoorNum}).pop()change = input('switch to {}?(y/n)'.format(thirddoor))# 用于表示玩家最后选择的门号finaldoornum = thirddoor if change=='y' else firstDoorNumif doors[finaldoornum] =='goat':return 'I win'else:return 'you win'# 循环进行游戏,直到用户不想继续为止
while True:print('='*30)print(start())r=input('do you want to try once more?(y/n)')if r=='n':break
模拟蒙蒂霍尔悖论游戏相关推荐
- 使用Python模拟蒙蒂霍尔悖论游戏
假设你正参加一个有奖游戏节目,并且有3道门可选:其中一个后面是汽车,另外两个后面是山羊.你选择一个门,比如说1号门,主持人当然知道每个门后面是什么并且打开了另一个门,比如说3号门,后面是一只山羊.然后 ...
- 蒙蒂霍尔问题_常见的逻辑难题–骑士和刀,蒙蒂·霍尔和就餐哲学家的问题解释...
蒙蒂霍尔问题 While not strictly related to programming, logic puzzles are a good warm up to your next codi ...
- python编程手机模拟点击_python模拟点击玩游戏的实例讲解
小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么 ...
- Pyhton之模拟石头剪子布游戏篇
石头剪子布游戏规则:石头>剪子来,剪子>布,布>石头.如果双方出示了一样的手势,就是平局. # coding :UTF_8 # 开发团队 :心心相印 # 开发人员 :机器人小白 # ...
- 实验内容:编写程序,模拟抓狐狸小游戏。假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在
'''编写程序,模拟抓狐狸小游戏.假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口, 然后玩家随机打开一个洞口,如果里面有狐狸就抓到了.如果洞口里没有狐狸就第二天再来抓, 但是第二天狐狸会在玩 ...
- python3模拟抓狐狸小游戏
编写程序,模拟抓狐狸小游戏.假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了.如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前 ...
- 用python写一个简单的网页游戏_python模拟点击玩游戏的实例讲解
小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么 ...
- Python之模拟职场人生游戏
题目:模拟人生 要求:1.至少有两个角色 2.玩的过程中,有冲突 3.根据不同的交互,产生不同的行为. 4.一定要用到面向对象语法和思想 1.解题思路 创建一个类,赋予角色不同的方法,使用面向对象思想 ...
- 动态再结晶CA法模拟基础之生命游戏入门
动态再结晶CA法模拟基础之生命游戏入门 游戏规则定义 引言:元胞自动机法在非线性问题和复杂动态系统的模拟上日趋成熟,已经成功应用于许多科学领域,在材料科学领域,元胞自动机法(CA法,下文同)在显微组织 ...
最新文章
- 成长秘笈:是你教我,不是我教你
- 高科技领域零的突破永不嫌多 --- 我看嫦娥四号成功登陆月球背面
- matlab 查看函数属性,matlab – 使用FFT属性查找2D函数的导数
- 《软件工程》总结——第十一章
- MySQL配置文件my.cnf中文版(转载)
- gitlab的升级【二】旧数据的备份和新数据的恢复
- 为什么微软溢价50%并购LinkedIn:估值、增长、变现和背后的魔法
- 【VC基础】 5、对象相关性(Object Dependencies)
- 2015/Province_Java_A/3/九数分三组
- python 全文搜索 句子_python新玩法:用python进行文章摘要拿取,只需要一行代码
- es6标准入门第3版pdf_最详细,快速入门Web前端开发的正确姿势
- But Wang Xing, who is concerned about long-term
- [翻译] JNWSpringAnimation
- 许三多修路带给我们成功的启示
- PHP中的数组(集合)
- 【MDCC 2016】硬件产品开发峰会:硬件创业、创新之道深入探索
- LDPC — 信道编码
- 大疆精灵4rtk照片信息读取
- .NET Runtime Optimization Service占用大量cpu问题处理windows2012
- 命主属性是水什么意思_五行为水的命主会有怎么样的性格特点
热门文章
- 【计算机网络】Shannon公式与Nyquist定理
- Elasticsearch SSL认证/证书制作
- MySQL从入门到精通:多表查询的灵活运用_02
- php和c#短信接口,C#代码示例_短信接口 | 微米-中国领先的短信彩信接口平台服务商...
- 【整理】SIMD、MMX、SSE、AVX、3D Now!、neon——指令集大全
- QQ浏览器性能提升之路-windows性能分析工具篇
- 转龚文祥的一篇文章:对看起来很美的网站要保持审慎的乐观
- 看雪pwn入门--基础篇
- keepalived健康检查
- Perculia for Mac(苹果电脑蓝牙助手)