python实验蒙蒂霍尔悖论游戏

编程入门 行业动态 更新时间:2024-10-20 16:48:14

python实验蒙蒂<a href=https://www.elefans.com/category/jswz/34/1764843.html style=霍尔悖论游戏"/>

python实验蒙蒂霍尔悖论游戏

**实验内容:**假设你正参加一个有奖游戏节目,并且有 3 道门可选:其中一个后面是汽车,另外两个 后面是山羊。你选择一个门,比如说 1 号门,主持人当然知道每个门后面是什么并且打开了 另一个门,比如说 3 号门,后面是一只山羊。这时,主持人会问你"你想改选 2 号门吗?", 然后根据你的选择确定最终要打开的门,并确定你获得山羊(输)或者汽车(赢)。 编写程序,模拟上面的游戏
下面展示一些 内联代码片

from random import randrange
'''返回一个字典,键为 3 个门号,值为门后面的物品'''
def init():result = {i: 'goat' for i in range(3)} r = randrange(3) result[r] = 'car' return result
def startGame(): # 获取本次游戏中每个门的情况 doors = init() # 获取玩家选择的门号 while True: try:firstDoorNum = int(input('Choose a door to open:')) assert 0<= firstDoorNum <=2 breakexcept: print('Door number must be between {} and {}'.format(0, 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 firstDoorNum if doors[finalDoorNum] == 'goat': return 'I Win!' else:return 'You Win.'   while True: print('='*30) print(startGame()) r = input('Do you want to try once more?(y/n)')if r == 'n': break 

更多推荐

python实验蒙蒂霍尔悖论游戏

本文发布于:2024-02-24 16:44:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695990.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:霍尔   悖论   蒙蒂   游戏   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!