蒙蒂霍尔悖论游戏。假设你正参加一个有奖游戏节目,并且有 3 道门可选:其中一个后面是汽 车,另外两个 后面是山羊。你选择一个门,比如说 1 号门,主持人当然知道 每个门后面是什么并且打开了 另一个门,比如说 3 号门,后面是一只山羊。 这时,主持人会问你"你想改选 2 号门吗?", 然后根据你的选择确定最终要 打开的门,并确定你获得山羊(输)或者汽车(赢)。 编写python程序,模拟上面的游戏。
时间: 2024-02-05 15:13:46 浏览: 141
三门问题,蒙特霍尔问题的Python程序
以下是模拟游戏的Python程序:
```python
import random
# 初始化三扇门,其中一扇门后面是汽车,其余两扇门后面是山羊
doors = [0, 0, 0]
car_index = random.randint(0, 2)
doors[car_index] = 1
# 玩家选择一扇门
player_choice = int(input("请选择一扇门(1-3):")) - 1
# 主持人打开另外一扇门,后面是山羊
goat_indices = [i for i in range(3) if i != player_choice and i != car_index]
goat_index = random.choice(goat_indices)
# 输出主持人打开的门和玩家所选的门
print("请注意,第%d扇门后面是一只山羊。" % (goat_index + 1))
print("您选择了第%d扇门。" % (player_choice + 1))
# 玩家是否选择换门
change_choice = input("您想改变选择吗?(y/n)")
if change_choice.lower() == 'y':
new_indices = [i for i in range(3) if i != player_choice and i != goat_index]
player_choice = new_indices[0]
# 输出最终结果
if doors[player_choice] == 1:
print("恭喜,您赢得了一辆汽车!")
else:
print("很遗憾,您获得了一只山羊。")
```
运行程序后,按照提示依次输入选择门的编号和是否选择换门,程序将输出最终结果。
阅读全文