三扇门,只有一扇门有汽车,其余两扇门的都是山羊。
汽车事前被等可能的放置在,三扇门中的一个。
参赛者在三扇门中等可能的选择一扇,在挑选前不知道任意一扇门后面是什么
主持人清楚每扇门后面是什么
如果参赛者挑了一扇有山羊的门,那么主持人就把另外一扇门打开,
如果参赛者挑了一扇有汽车的门,那么主持人等可能的在另外两扇有山羊的门之中打开一扇。
参赛者会被问是否保持他的原来的选择,还是选择剩下的一扇门。
这个问题存在悖论 但是我们可以对它进行模拟
Python代码如下
import random
def MontyHall(Dselect,Dchange):
Dear = random.randint(1,3)
if Dear == Dselect and Dchange == 0:
return 1
elif Dear != Dselect and Dchange == 0:
return 0
elif Dear == Dselect and Dchange == 1:
return 0
else:
return 1
n = 10000
win = 0
for i in range(n):
Dselect = random.randint(1,3)
Dchange = 1
win = win + MontyHall(Dselect,Dchange)
print float(win)/float(n)
n = 10000
win = 0
for i in range(n):
Dselect = random.randint(1,3)
Dchange = 0
win = win + MontyHall(Dselect,Dchange)
print float(win)/float(n)
n = 10000
win = 0
for i in range(n):
Dselect = random.randint(1,3)
Dchange = random.randint(0,1)
win = win + MontyHall(Dselect,Dchange)
print float(win)/float(n)