Недавно я смотрел видео о проблеме Монти Холла и был заинтересован в том, что у соперника был шанс выиграть 2/3 при переключении. Поэтому я решил написать имитацию, чтобы увидеть это сам. Тем не менее, моя симуляция дала ответ 50%. Может ли кто-нибудь указать, почему? Примечание: количество дверей можно изменить, изменив значение num_of_doors
.
from random import randint
num_of_doors = 3
num_of_simulations = 0
wins = 0
while True:
num_of_simulations += 1
doors = {k: "Donkey" for k in range(1, num_of_doors + 1)}
car = randint(1, num_of_doors)
doors[car] = "Car"
choice = randint(1, num_of_doors)
while len(doors) > 2:
reveal = randint(1, num_of_doors)
if reveal in doors:
if reveal != choice and doors[reveal] != "Car":
del doors[reveal]
for k in doors:
if k != choice:
choice = k
if doors[choice] == "Car":
wins += 1
print(100 * wins / num_of_simulations)