题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。
1、按照你的第一感觉回答,你觉得不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?
答:换几率更高,在电影《决胜点》中看过这个问题。
2、请自己认真分析一下“不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?” 写出你分析的思路和结果。
答:可以把这题当作一个概率问题,分析如下:
设三门后面分别为车,A羊,B羊。则第一次选门的时候,可以分为以下三种等概情况:
情况1:车 1/3
情况:A羊 1/3
情况:B羊 1/3
接下来,若不更换所选门:
情况:得车
情况:不得
情况:不得
若更换所选门:
情况:不得
情况:得
情况:得
显然,换的情况概率为2/3,高于不换的1/3。故换选择有更高的几率。
此外,还可以用一种我自认为容易理解的解释来说明我的答案:
在主持人打开羊门之后,剩下的门无非一扇车门,一扇羊门。若我们换门,那么必然会改变先前的结果。(车门变羊门,羊门变车门)。
于是可以认为,
先前选到车门的概率==更换后选到羊门的概率;
同理,
先前选到羊门的概率==更换后选到车门的概率;
也就是说,更换后选到车门的概率是2/3。而先前选到车门不换的概率是1/3。还是换选择概率更高。
注:和同学讨论过后,这里提一下我认为为什么答案不是1/2。
如果换与不换得车概率均为1/2。那么题目就变为:“主持人先打开一扇有羊的门,在剩下的两个门中你进行选择,求得车的概率。”
我认为关键的是:若你不更换门的话,主持人开门这一事件并不影响你选到的是车门的概率。
3. 请设法编写程序验证自己的想法,验证的结果支持了你的分析结果,还是没有支持你的分析结果,请写出程序运行结果,以及其是否支持你的分析。
答:基于上述分析,我认为其实根本不必模拟追踪门的过程。
方法如下:1).声名两个变量,man和car,分别代表你的初次选择和车门的位置。
再声名两个变量,换门获胜数与不换门获胜数,用于记录结果。
2).利用random库中的randint产生1~3范围内的随机数,对两个变量分别赋值。
3).若赋值后,car==man,则说明一开始选择的便是车门,
此时,不换的获胜数+1;
否则,意味着一开始选择的是羊门,则换的获胜数+1。
4).将上述过程重复足够大的基数,计算概率,验证结论。
实验结果如下:分别将过程重复遍,10000遍,十万遍,一百万遍。
重复基数越大,不换与换获胜的几率分别越接近于1/3与2/3。验证了之前的猜想。
4、请附上你的代码。
代码如下:
import random as r #总次数
total=1000000 #1000,1W,10W,100W
#换与不换的获胜次数
win1=0
win2=0 for i in range(total):
#模拟选择过程
man=r.randint(1,3)
car=r.randint(1,3)
#结果:一开始为车门,不换+1.
# 否则则一开始为羊门,换+1.
if man==car:
win1+=1
else:
win2+=1 print("在{}次实验中:".format(total))
print("若不更改门,获胜概率为{:.3}%.".format((win1/total)*100))
print("若更改门,获胜概率为{:.3}%.".format((win2/total)*100))