羊车门问题(用户可自定义羊和车的数量)

羊车门问题

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

答:

1.开始时认为更换选择会有更大的机会得到车。因为主持人毕竟开启了一扇有羊的门,第一直觉就是羊的数量减少,必定伴随着得到车的概率增大。

2.仔细分析以后,得出结论,换得到车的概率更大一些。

如果不换,得到车的概率是1/3。而在换的情况下,主持人开启一扇有羊的门,不管开始选的是羊还是车,它都是一个取反的过程(即开始选择的羊,换后为车。开始选择的车,换后为羊),因为开始时羊的比例要大于车,占比为2/3,所以换后得到车的概率会更大一些。(此过程仅限于1车2羊)

3.以下代码可以实现让用户自己设定车和羊的个数

from random import randint
n = eval(input("请输入试验次数:"))
x=eval(input("请输入车的数量:"))
y=eval(input("请输入羊的数量(要求数量大于2):"))
a = 0
b = 0
for i in range(n):
    car = randint(1, x+y) 
    my  = randint(1, x+y)
    if my == car:     
        a+=1
    else:
        b+=1
resource = a / n       
change = (b/n)*x/(x+y-2)+(a/n)*(x-1)/(x+y-2)      
print("更改选择得到车的可能性为{},不更改选择得到车的可能性为{}".format(change,resource))

运行结果:

 

 

 结组成员:梁佳兴  杨玉泽

posted @ 2017-10-25 09:40  做到平淡  阅读(525)  评论(0编辑  收藏  举报