标签:随机数 功能 python 代码 提示 两种 情况 port 问题
作业完成人:
学号: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)))
标签:随机数 功能 python 代码 提示 两种 情况 port 问题
原文地址:https://www.cnblogs.com/fengjingyuan/p/8977816.html