蒙提霍尔问题的解决:使用Python模拟
蒙提霍尔问题
蒙提霍尔问题(又称三门问题、山羊汽车问题),参赛者面前有三扇关闭着的门,其中一扇的后面是一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,主持人会开启剩下两扇门中的一扇,露出其中一只山羊。主持人其后会问参赛者要不要更换选择,选另一扇仍然关着的门。
更换选择还是不更换选择?
思路
从统计学角度将,更换选择得到汽车的概率更大,原因是:
- 如果第一次选择正确,更换选择必定错误
- 如果第一次选择错误,更换选择必定正确
- 第一次选择:1/3概率正确,2/3概率不正确
也就是说,【第一次选择错误】的概率(2/3)是【更换选择后必定正确】的概率,所以【更换选择后必定正确】即【更换选择后得到汽车】的概率为2/3,重选更加有利。
Python模拟
编写代码,函数默认为1000次不更换选择。我选择了10000次,分别更换和不更换选择。
import random
'''
(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
'''
def choose(iteration = 1000, change = 'n'):
win_car = 0
win_goat = 0
prize_layout = random.randint(1, 3)