首页 > 代码库 > 羊车门问题

羊车门问题

‘‘‘
1、我认为会增加选中汽车的机会。 

原因如下:如果不更改选择就是三个中选择一个,选中汽车的概率是1/3,如果更改选项的话,那就是认为自己原来的选项是不正确的,主持人
已经排除了一个错误选项,所以只剩下一个选项可以选择,认为自己原来的选项不正确,这样的概率是2/3,所以更改选项后选中汽车的机会增加了。

2、源代码如下:
‘‘‘
import random

n=0
a=input("请输入模拟次数:")
a=eval(a)
for i in range(a):
    tar=random.random()
    tar=tar*3//1+1
    #print (tar)
    cho=random.random()
    cho=cho*3//1+1
    if tar==cho:
        n+=1
c=n/a
d=1-c
print ("不更改选择的获得汽车的概率:{},更改选择获得汽车的概率:{}".format(c,d))

技术分享

上面是依据条件概率的相关理解编写的程序,下面是根据过程编写的程序;

import random

n=eval(input ("请输入模拟次数:"))
n1=0 #猜中汽车的次数
b=eval (input ("请输入猜测的号码:"))
cho=input("请输入是否更改选择:(y or n)")
for i in range(n):
    a1=(random.random())*3//1+1 #汽车所在的门的序号
    while True:
        a2=(random.random())*3//1+1   #给出一个门后是羊的提示
        if a2==a1:
            continue
        elif a2==b:
            continue
        else:
            break
    if cho=="y":            #更改自己的选择
        while True:
            b1=(random.random())*3//1+1
            if b1==b or b1==a2:
                continue
            else:
                break
        b=b1
    if b==a1:
        n1+=1
c=n1/n
if cho=="y" :   
    print ("更改选择后的概率为:{}".format(c))
else:
    print ("改变选择后的概率为:{}".format(c))

技术分享

羊车门问题