Monty-Hall Python仿真计算

2024-06-26 00:27:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着模拟蒙蒂霍尔问题,有人选了一扇门,然后随机取下一扇门——最后肯定是一个有车和一个没有车的门,其中一个肯定是有人选的。虽然我现在不需要模拟/询问使用程序的人他们喜欢哪扇门,但我在实际设置计算时遇到了困难。当我运行代码时,它输出0,其中is应该是大约66%

import random

doors=[0,1,2]
wins=0

car=random.randint(0,2)
player=random.randint(0,2)

#This chooses the random door removed
if player==car:
    doors.remove.random.randint(0,2)
else:
    doors.remove(car)
    doors.remove(player)

for plays in range(100):
    if car == player:
        wins=wins+1

print(wins) 

Tags: 代码import程序ifisrandomthiscar
1条回答
网友
1楼 · 发布于 2024-06-26 00:27:56

你需要把你的代码放在循环中,让它每次都运行。你还需要确保你只允许第二次有效的选择(他们不能选择被移除的门),并且你只移除了有效的门(你不能移除汽车或玩家选择的门的门)。在

import random

wins = 0

for plays in range(100):
    doors = [0,1,2]
    car = random.choice(doors)
    player = random.choice(doors)

    # This chooses the random door removed
    doors.remove(random.choice([d for d in doors if d != car and d != player]))

    # Player chooses again (stay or switch)
    player = random.choice(doors)
    if player == car:
        wins += 1

print(wins)

但就Monty Hall问题而言,你甚至不必追踪门。在

^{pr2}$

相关问题 更多 >