三门问题的MonteCarlo仿真方法

三门问题的MonteCarlo仿真方法

一.三门问题

​ 一个人参加某个电视节目,有三个门,其中只有一个门后面有大奖汽车。当该挑战者选好了一个门之后,主持人打开另一个门发现后面没有汽车,问挑战者是否更换门,请问此时这个人是否应该坚持自己最初的想法那个门?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pTEnF9sJ-1606546342944)(D:\文件\2020 09 19\美赛软件\三门图片.jpg)]

二.问题分析

​ 我们用MonteCarlo法用生成随机数来进行仿真实验。

Step1: 首先生成一个随机变量 x i = j x_i = j xi=j , j j j只能随机取1,2,3之中的一个,代表第 j j j个门后有大奖汽车。

Step2: 此时再生成一个随机变量 y i = k y_i = k yi=k, k k k只能随机取1,2,3之中的一个,代表挑战者心里的想法是 k k k门。

Step3: 再定义一个随机变量 c h o i c e i = 0   o r   1 choice_i = 0\ or \ 1 choicei=0 or 1,代表在主持人询问之后挑战者的决策, c h o i c e i = 0 choice_i = 0 choicei=0代表坚持自己 的想法,不改变最初的计划, c h o i c e i = 1 choice_i = 1 choicei=1表示改变自己最初的想法。

Step4: 现在来判断:如果 x i = y i x_i = y_i xi=yi,即第一次挑战者就选到了正确的门,那么如果此时 c h o i c e i = 0 choice_i = 0 choicei=0,即坚持自己的 想法,那么此时他坚持自己的想法获胜的次数加一。如果此时 c h o i c e i = 1 choice_i = 1 choicei=1,即改变了自己的想法,此时 他将挑战失败,那么他失败的次数加一。

Step5: 紧接上一步,如果 x i ≠ y i x_i \ne y_i xi=yi,即第一次挑战者没有选到正确的门,那么此时如果 c h o i c e i = 0 choice_i = 0 choicei=0 ,即坚持自己 的想法,那么他将失败,失败的次数加一。若改变自己的想法,即 c h o i c e i = 1 choice_i = 1 choicei=1,此时他将成功,那么他不 坚持他自己的想法获胜的次数加一。

Step6: 此时 i = i + 1 i = i+1 i=i+1,转向Step1,直到 i ≥ n i \geq n in为止。( n n n为总的实验次数。)

Step7: 输出:
P 赢 得 奖 品 ∣ 坚 持 自 己 的 想 法 = n 坚 持 他 自 己 的 想 法 获 胜 的 次 数 n P 赢 得 奖 品 ∣ 不 坚 持 自 己 的 想 法 = n 没 有 坚 持 他 自 己 的 想 法 获 胜 的 次 数 n P 失 败 = n 失 败 的 次 数 n P_{赢得奖品|坚持自己的想法} = \frac{n_{坚持他自己的想法获胜的次数}}{n}\\ P_{赢得奖品|不坚持自己的想法} = \frac{n_{没有坚持他自己的想法获胜的次数}}{n}\\ P_{失败} = \frac{n_{失败的次数}}{n}\\ P=nnP=nnP=nn

三.实现代码

#三门问题
import random,math
numbers = 20000
successfulSelectProp = 0
succUnselectProp = 0
failProp = 0
for i in range(numbers):
    myChoice = random.randint(1,3)
    rightChoice = random.randint(1,3)
    choice = random.randint(0,1)#1代表选择改变,0代表不改变
    if myChoice == rightChoice:
        if choice == 1: #改变了我的意图
            failProp += 1
        else:
            successfulSelectProp += 1
    else:
        if choice == 1:
            succUnselectProp += 1
        else:
            failProp += 1
print('坚持自己的想法最后成功的概率为{:.4f},不坚持想法最后成功的概率{:.4f},最后失败的概率{:.4f}'.format(successfulSelectProp/numbers,succUnselectProp/numbers,failProp/numbers))

四.结果

#结果
坚持自己的想法最后成功的概率为0.1623,不坚持想法最后成功的概率0.3337,最后失败的概率0.5040

Process finished with exit code 0

​ 可以知道在主持人这么问了之后改变自己最初的想法最后成功的概率比较大,几乎是坚持自己的想法获胜的概率的两倍。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值