【Python】解决一个有趣的概率学问题(三门问题)

问题如下:

1990 年,美国马里兰州的 Craig Whitaker 给 Parade 杂志的「问问玛丽莲」( Ask Marilyn )专栏写了一封信,向这个专栏的主持人玛丽莲·沃斯·莎凡特( Marilyn vos Savant )提出了一个概率问题:「假设你正在参加一个电视节目。舞台上有三扇门,其中一扇门的后面是汽车,另外两扇门的后面是山羊。你当然是想选中后面有汽车的那扇门。你随便选择了一扇门,比如说 1 号门。这时,主持人打开了另一扇门,比如说 3 号门,让你看到了 3 号门的后面是一只山羊(主持人知道每扇门后面都是什么)。现在,主持人给你一次重新选择的机会。你是否应该换选 2 号门呢?」

玛丽莲是门萨国际的会员,她拥有高达 228 的智商,曾是吉尼斯世界纪录记载的「智商最高的人」。在 Parade 的专栏里,玛丽莲回答过各式各样的谜题,几乎从未出错,这次也不例外。她的回答非常明确:应该换。只需要注意到下面这个事实:刚开始你选中的是汽车,换了后你就会获得山羊;刚开始你选中的是山羊,换了后你就会获得汽车。由于你刚开始选中汽车的概率只有 1/3,选中山羊的概率有 2/3,因此换选 2 号门对你更有利一些。

上面的解答是完全正确的。然而,很多人会觉得,游戏者最终面对的不过是一个二选一的难题,换与不换似乎应该是一样的呀?于是,这个问题毫无疑问地成为了史上争论最多的数学问题之一。上万名读者向 Parade 杂志写信指出玛丽莲的「错误」,其中包括近千名拥有 PhD 学位的读者。据说,匈牙利数学家保罗·埃尔德什(Paul Erdős)刚开始也拒不接受玛丽莲给出的答案,直到亲眼看见计算机模拟出来的结果,才慢慢开始改变自己的看法。

解决问题的代码:

import random
x = [0, 1, 0]   # 0:未中奖 1:奖品

count1 = 0
count2 = 0
epoch = 100000
if __name__ == '__main__':
    for _ in range(epoch):
        random.shuffle(x)
        c = random.choice([1, 2, 3])
        print("选择第{}个。".format(c))

        # 随机揭示一个不为1的位置
        choice1 = [1, 2, 3]
        choice1.remove(x.index(1)+1)  # 移除正确选项
        if c in choice1: choice1.remove(c)  # 移除已选择的选项
        expose = random.choice(choice1)
        print("揭示{}".format(expose))

        # 重新开始选择
        choice2 = [1, 2, 3]
        choice2.remove(c)   # 最开始的选择
        choice2.remove(expose)  # 排除的选择
        new_choice = choice2[0]

        if x[c-1] == 1:
            count1 += 1

        if x[new_choice-1] == 1:  # 如果新的选择选择正确
            count2 += 1

    result1 = count1/epoch
    result2 = count2/epoch

    print("不更换选择,中将的概率{}".format(result1))
    print("更换选择,中将的概率{}".format(result2))

你要问我结果? 自己试一试吧~

换种方法理解一下这个问题:

首先自定义下规则:
① 第一次进行随机选择。
② 主持人随机揭示一个错误的答案。
③ 必须更换选择。

情况一:假设第一次你选择了C(其实是错误答案),主持人只能在A、B中选择一个揭示,而由于A、B中只有一个错误答案,所以主持人只能选择那个错误的答案(假设这个答案为A),由于规则限制你必须更换选择,那么你就选择了正确的结果。

情况二:假设第一次你选择了C(其实是正确答案),那么主持人可以在A、B中选择任何一个,此时在你更换选择后,你都不会中奖。

所以就是说,第一次选择错误你会中奖,第一次选择争取你不会中奖。

而第一次选择正确的概率是1/3,选择错误的概率是2/3。

所以,只要我们更换选择,就有2/3的概率中奖。

更换选择能提高中奖概率的原因:当你第一次选择错误的时候(2/3的概率),主持人会帮你排除了错误的结果,这时你更换结果就一定是正确的。当你第一次选择正确的时候(1/3的概率),主持人可以随便选择一个结果,这时你更换选择就是错误的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望天边星宿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值