羊车门作业

题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。

作业要求如下,需在博文中回答如下问题,回答问题时,先复制题目,然后再换行书写答案:

1、按照你的第一感觉回答,你觉得不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?

换选择能有更高的几率

2、请自己认真分析一下“不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?” 写出你分析的思路和结果。

不换选择获得汽车的概率显然是1/3

现在讨论换选择时能获得汽车的概率。当第一次选择的是汽车时,不论主持人露出哪一扇门后的山羊,更换选择后所选的一定是羊。当第一次选择的是两只羊中的一只时,主持人会露出另外一只山羊,更换选择后所选的一定是汽车。

综上分析,当且仅当第一次选择为羊时,最终选择的是汽车。因而最终选择为汽车的概率就为第一次选择为羊时的概率,为2/3。

3、请设法编写程序验证自己的想法,验证的结果支持了你的分析结果,还是没有支持你的分析结果,请写出程序运行结果,以及其是否支持你的分析。(提示:可以借助随机数函数完成此程序)

验证的结果支持了我的分析结果

不换选择的概率为0.333
换选择的概率为0.667

4.源代码

#1表示山羊1 2表示山羊2 3表示汽车
import random
def nochange():
    goat1=0
    goat2=0
    car=0
    for i in range(1,10000001):
        choice=random.randint(1,3)
        if choice==1:
            goat1+=1
        elif choice==2:
            goat2+=1
        else:
            car+=1
    probability=car/10000000
    return probability
    
    
def change():
    car=0
    goat2=0
    goat1=0
    for i in range(1,10000001):
        initialchoice=random.randint(1,3)
        if initialchoice==1:
            car+=1
        elif initialchoice==2:
            car+=1
        else:
            hostshow=random.randint(1,2)
            if hostshow==1:
                goat2+=1
            else:
                goat1+=1
    probability=car/10000000
    return probability
    
print("不换选择的概率为{:.3f}".format(nochange()))
print("换选择的概率为{:.3f}".format(change()))

 

posted on 2018-11-25 18:17  张子扬123  阅读(176)  评论(0)    收藏  举报