关于羊车门问题的讨论

作业完成人:

学号:20171301016,封靖源

学号:20171301004,李紫薇

 

 

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

答:第一感觉是几率相同。

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

答:不换时选中汽车的概率:三分之一(没有换所以与一开始选中汽车的概率是一样的)

        换时选中汽车的概率是:三分之二(此处分两种情况讨论:第一种是一开始就选中车,此时再换就选不中汽车,这种概率为三分之一。第二种情况是一开始选中了羊,此时只要进行交换就可以选中汽车,而一开始选中羊的概率为三分之二,所以交换选中汽车的概率为三分之二。)

       所以此问题又可以简化为第一次选择选中车的概率。

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

答:

运行结果:请输入验证次数:100000

交换后选中车的概率为:0.66688

不交换选中车的概率为:0.33312

其运行结果支持了我们的分析

4、请附上你的代码。(提示:使用编辑器中的插入代码功能,将代码显示为 Python 风格)

代码如下:

import random
a=[0,1,0]
i=0
n1=0
n2=0
times=eval(input("请输入验证次数:"))
while i<times:
  door1=random.choice(a)
  if door1!=1:
      n1=n1+1
  else:
    n2=n2+1
  i=i+1
print("交换后选中车的概率为:{}".format(n1/times))
print("不交换选中车的概率为:{}".format(n2/times))

 

 

5、思路扩展(希望老师可以看一下正确与否)

在从网上搜索的过程中,发现了其拓展相关的题,题中将1辆车变为了n辆车,1只羊变为了m只羊,随后对该题进行了思考。

1)思路:

不换车时得到车的概率:n/(n+m)

换车时得到车的概率:{[n/(m+n)]*[(n-1)/(m+n-2)]}+{[m/(m+n)]*[n/(m+n-2)]}

2)运行结果:

羊的数量:2

车的数量:1

输入测验次数:10000

选择不换,获得车的概率为:0.3359

选择换,获得车的概率为:0.6641

3)代码:

import random
sheep=eval(input('羊的数量:'))
car=eval(input('车的数量:'))
num=eval(input('输入测验次数:'))
s=sheep+car
i=0
ncar=0
ncar1=0
ncar2=0
while i<num:
    x=random.randint(1,s)
    if x<=car:
        ncar=ncar+1
        s1=car+sheep-2
        x=random.randint(1,s1)
        if x<=car-1:
            ncar1=ncar1+1
    else:
        s2=car+sheep-2
        x=random.randint(1,s2)
        if x<=car:
            ncar2=ncar2+1
    i=i+1
print('选择不换,获得车的概率为:{}'.format(ncar/num))
print('选择换,获得车的概率为:{}'.format((ncar1/num)+(ncar2/num)))

猜你喜欢

转载自www.cnblogs.com/fengjingyuan/p/8977816.html