实验报告

模拟蒙蒂霍尔悖论游戏

实验目的

(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

模拟蒙蒂霍尔悖论游戏相关推荐

  1. 使用Python模拟蒙蒂霍尔悖论游戏

    假设你正参加一个有奖游戏节目,并且有3道门可选:其中一个后面是汽车,另外两个后面是山羊.你选择一个门,比如说1号门,主持人当然知道每个门后面是什么并且打开了另一个门,比如说3号门,后面是一只山羊.然后 ...

  2. 蒙蒂霍尔问题_常见的逻辑难题–骑士和刀,蒙蒂·霍尔和就餐哲学家的问题解释...

    蒙蒂霍尔问题 While not strictly related to programming, logic puzzles are a good warm up to your next codi ...

  3. python编程手机模拟点击_python模拟点击玩游戏的实例讲解

    小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么 ...

  4. Pyhton之模拟石头剪子布游戏篇

    石头剪子布游戏规则:石头>剪子来,剪子>布,布>石头.如果双方出示了一样的手势,就是平局. # coding :UTF_8 # 开发团队 :心心相印 # 开发人员 :机器人小白 # ...

  5. 实验内容:编写程序,模拟抓狐狸小游戏。假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在

    '''编写程序,模拟抓狐狸小游戏.假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口, 然后玩家随机打开一个洞口,如果里面有狐狸就抓到了.如果洞口里没有狐狸就第二天再来抓, 但是第二天狐狸会在玩 ...

  6. python3模拟抓狐狸小游戏

    编写程序,模拟抓狐狸小游戏.假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了.如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前 ...

  7. 用python写一个简单的网页游戏_python模拟点击玩游戏的实例讲解

    小编发现很多小伙伴都喜欢玩一些游戏,而手游因为玩的场景限制不多,所以受众的人更多.游戏里有很多重复的任务需要我们完成,虽然过程非常无聊,但是为了任务奖励还是有很多小伙伴不厌其烦的去做.那么,有没有什么 ...

  8. Python之模拟职场人生游戏

    题目:模拟人生 要求:1.至少有两个角色 2.玩的过程中,有冲突 3.根据不同的交互,产生不同的行为. 4.一定要用到面向对象语法和思想 1.解题思路 创建一个类,赋予角色不同的方法,使用面向对象思想 ...

  9. 动态再结晶CA法模拟基础之生命游戏入门

    动态再结晶CA法模拟基础之生命游戏入门 游戏规则定义 引言:元胞自动机法在非线性问题和复杂动态系统的模拟上日趋成熟,已经成功应用于许多科学领域,在材料科学领域,元胞自动机法(CA法,下文同)在显微组织 ...

最新文章

  1. 成长秘笈:是你教我,不是我教你
  2. 高科技领域零的突破永不嫌多 --- 我看嫦娥四号成功登陆月球背面
  3. matlab 查看函数属性,matlab – 使用FFT属性查找2D函数的导数
  4. 《软件工程》总结——第十一章
  5. MySQL配置文件my.cnf中文版(转载)
  6. gitlab的升级【二】旧数据的备份和新数据的恢复
  7. 为什么微软溢价50%并购LinkedIn:估值、增长、变现和背后的魔法
  8. 【VC基础】 5、对象相关性(Object Dependencies)
  9. 2015/Province_Java_A/3/九数分三组
  10. python 全文搜索 句子_python新玩法:用python进行文章摘要拿取,只需要一行代码
  11. es6标准入门第3版pdf_最详细,快速入门Web前端开发的正确姿势
  12. But Wang Xing, who is concerned about long-term
  13. [翻译] JNWSpringAnimation
  14. 许三多修路带给我们成功的启示
  15. PHP中的数组(集合)
  16. 【MDCC 2016】硬件产品开发峰会:硬件创业、创新之道深入探索
  17. LDPC — 信道编码
  18. 大疆精灵4rtk照片信息读取
  19. .NET Runtime Optimization Service占用大量cpu问题处理windows2012
  20. 命主属性是水什么意思_五行为水的命主会有怎么样的性格特点

热门文章

  1. 【计算机网络】Shannon公式与Nyquist定理
  2. Elasticsearch SSL认证/证书制作
  3. MySQL从入门到精通:多表查询的灵活运用_02
  4. php和c#短信接口,C#代码示例_短信接口 | 微米-中国领先的短信彩信接口平台服务商...
  5. 【整理】SIMD、MMX、SSE、AVX、3D Now!、neon——指令集大全
  6. QQ浏览器性能提升之路-windows性能分析工具篇
  7. 转龚文祥的一篇文章:对看起来很美的网站要保持审慎的乐观
  8. 看雪pwn入门--基础篇
  9. keepalived健康检查
  10. Perculia for Mac(苹果电脑蓝牙助手)