马锦涛

2020-11-24   阅读量: 43

Python 统计学

如何用Python解决蒙特霍尔三门问题

游戏规则:

  • 参赛者会看见三扇关闭的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车,另两扇门后则各藏有一只山羊。

  • 当参赛者选定了一扇门,但未去开启它的时候,知道门后情形的节目主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。

  • 主持人其后会问参赛者要不要换另一扇仍然关上的门。

概率求解(python实现):

import randomdef MontyHall(Dselect, Dchange):
Dcar = random.randint(1,3)
if Dselect == Dcar and Dchange == 0:
return 1
elif Dselect == Dcar and Dchange == 1:
return 0
elif Dselect != Dcar and Dchange == 0:
return 0
else:
return 1# 不确定是否改变选择def test1(N):
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))# 确定不改变选择def test2(N):
win = 0
for i in range(N):
Dselect = random.randint(1,3)
Dchange = 0
win = win + MontyHall(Dselect, Dchange)
print(float(win)/float(N))# 确定改变选择def test3(N):
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 = 10000print("不确定是否改变选择概率:")test1(N)print("确定不改变选择概率:")test2(N)print("确定改变选择概率:")test3(N)12345678910111213141516171819202122232425262728293031323334353637383940414243444546471234567891011121314151617181920212223242526272829303132333435363738394041424344454647

运行结果:

不确定是否改变选择概率:

0.4939

确定不改变选择概率:

0.3307

确定改变选择概率:

0.6618


0.0633 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子