zoukankan      html  css  js  c++  java
  • 羊车门

    作业完成人:
    学号:20181703112,罗子健
    学号:20181101052,蒋若辉
    

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

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

    答:换了几率更大

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

    答:

    思路1

    这里有三个门
    首先你随机选择一个门 , 然后主持人打开一个有羊的门,
    如果你选对了
    不改变选择就可以得到车 改变选择就得不到车
    如果你没选对
    改变选择就可以得到车 不改变选择就得不到车
    所以 这个问题变成了 两个随机数(一到三之间)是否相等的问题
    按照数学的概率来算
    两个数相等(不改变选择):1/3
    两个数不相等(改变选择):2/3

    思路2

    这种解法就是严格模拟“羊与车”题面所叙述的过程。
    首先我们先声明两个变量change和unchange用0表示表示门里有羊,1表示门里有车,先随机生成‘001’的全排列,再模拟玩家选择一扇门,如果选的是有车的门,主持人开启一扇有羊的门,这时参赛者就只用在剩下的门二选一,如果换了就不得奖,不换就得奖,这时我们在生成一个0或1的随机数(0表示不换,1表示换),如果随机数为0,不换,参赛者得奖unchange+1;如果选的是有羊的门,主持人开启另一扇有羊的门,这时参赛者也在剩下的门二选一,如果换了就得奖,不换就不得奖,这时我们在生成一个0或1的随机数(0表示不换,1表示换),如果随机数为1,换了,参赛者得奖,change+1。循环100000次,比较unchange多还是change多,如果unchange多则不换赢面大,change多则换的赢面大。

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

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

    代码如下

    思路1代码

    import random
    change,nochange=0,0
    for i in range(1,100000):
      if random.randint(1,3)==random.randint(1,3):
        nochange+=1
      else:
        change+=1
    print("不改选中概率:{}%".format(nchange/1000))
    print("改选中概率:{}%".format(change/1000))
    
    

    程序运行结果:

    不改选中概率:33.319%
    改选中概率:66.68%
    

    成功


    思路2代码

    import random
    change=0
    unchange=0
    for i in range(0,100000):
        a=random.randint(0,1)
        if a==0:
            b=random.randint(0,1)
            if b==0:
                c=1
            else:
                c=0
        else:
            b=0
            c=0
        i=random.randint(0,2)
        arr=[a,b,c]
        if arr[i]==1:
            e=random.randint(0,1)
            if e==0:
                unchange+=1
        else:
            e=random.randint(0,1)
            if e==1:
                change+=1
    print(change)
    print(unchange)
    if change>unchange:
        print("change")
    else:
        print("unchange")
    
    
    

    程序运行结果:

    33404
    16907
    change
    

    成功

  • 相关阅读:
    GitHub(二)之修改项目语言类型
    GitHub(一)之图片上传问题
    Git入门操作(一)
    树莓派小白教程六部曲
    关于Ajax请求的JS封装函数
    JavaScript运动_封装模板(支持链式运动、完美运动)
    NAT-地址转换技术的配置
    JAVA连接Sql-Server教程
    Kibana对数据的可视化
    浏览器渲染机制
  • 原文地址:https://www.cnblogs.com/x1aolata/p/10732608.html
Copyright © 2011-2022 走看看