• 羊车门问题


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

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

    答:没变化。因为打开了一扇羊的门,剩下两个门概率都是1/2。

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

    答:换选择获得汽车概率更高。一开始选中汽车的概率为1/3,打开一扇羊的门后,换选择成功(第一次选为羊)的概率变为2/3 * 1  =  2/3 ;不换(第一次选为车)而成功的概率为 1/3 。

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

    答:

      1..输入模拟次数time。

      2.times = 0,当times <= time 时,执行第3步,否则,执行第9步。

      3.设0代表羊,1代表车。

      4.定义一个列表,元素为0,0,1,并且随机排序。

      5.随机抽出一个元素来(设为a),再从列表中删除一个0。

      6.如果换选择的话,则再从列表中删去a,取出最后一个元素(设为b);不换选择的话,最终选择为a。

      7.若a是1,则i++;若b是1,则j++。

      8.times++,返回第2步。

      9.计算各个概率,并输出。

    结果:不换而成功的概率为:0.334;换选择而成功的概率为:0.666。支持。

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

    代码如下:

     1 import random
     2 
     3 i,j,times = 0,0,0
     4 time = eval(input("请输入总模拟次数:"))
     5 
     6 while times < time:
     7     ls = [0,0,1]
     8     random.shuffle(ls)
     9 #    print(ls)   测试是否打乱排序
    10     a = ls[random.randint(0,2)]
    11 #    print("a =",a) 
    12     ls.remove(0)
    13     ls.remove(a)
    14     b = ls[0]
    15 #    print("b =",b)
    16     if a == 1:
    17         i = i + 1
    18     if b == 1:
    19         j = j + 1
    20     times = times + 1
    21 print("不换而成功的概率为:{:.5f}".format(i/times))
    22 print("换选择而成功的概率为:{:.5f}".format(j/times))
  • 相关阅读:
    一款全屏图片滑动js 插件 超快捷
    19个非常有用的 jQuery 图片滑动插件和教程
    sqlite 下载的 ZIP 包的区别
    get utc+8 当时时间
    http://www.dayandeng.com/ 诈骗网站
    This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms
    c# string 数组转 list
    sql在添加新列时同时指定default约束名称
    windows证书地址
    Value Dispose() cannot be called while doing CreateHandle().
  • 原文地址:https://www.cnblogs.com/zcl843264327/p/8954541.html
Copyright © 2020-2023  润新知