ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蒙提霍尔问题

2022-03-03 18:32:41  阅读:261  来源: 互联网

标签:bar 盒子 cdot 主持人 frac 问题 霍尔 int 蒙提


题面

这其实是一个广为人知的问题。假设有这么个游戏,主持人拿了三个盒子,其中有一个有奖,另外两个是空的。你有两次选择机会,在第一次选择后,主持人没有告诉你你选的盒子有没有奖,而是打开了另外两个盒子中的一个,并且告诉你这个盒子没奖。现在轮到你选第二次,你是换盒子还是不换呢?

一般来说有两种回答,第一种观点认为,现在剩下的两个盒子一个有奖一个没奖,概率当然是 $ 1\over2 $ ,换不换都一样。另一种结论则是,目前选择的盒子有奖的概率为 $ 1\over 3 $ ,没奖概率是 $ 2\over 3 $ ,当然是换嘛。

在高中学习过条件概率的 $ hmj $ 立刻觉得第二种观点有问题!明明都已经告诉一个盒子是空的了,这条件概率能一点不变?然而概统老师无情地告诉我们,第二种观点是对的。于是 $ hmj $ 苦思冥想了半节概统课,最终直到晚课通核摸鱼时才有点眉目。

这到底是怎么会事呢?

既然高中贫乏的概率论知识不管用了,我们还是使用严谨的式子先来表示下问题。

我们给盒子编号为 1、2、3,并且假设我们选的是 1 号:

\[设事件\; A=中奖、B=1\,号盒子有奖、C=主持人告诉我们的新信息\\ 那么在不换盒子时:\quad\begin{align*} P(A|C)& =P((A\cdot B) |C)+P((A\cdot\bar B)|C)\\ & = P((A|B)|C)\cdot P(B|C)+P((A|\bar B)|C)\cdot P(\bar B|C)\\ & = 1\cdot P(B|C)+0\cdot P(\bar B|C)\\ & = P(B|C) \end{align*} \]

\[换盒子时:\quad\begin{align*} P(A|C)& =P((A\cdot B) |C)+P((A\cdot\bar B)|C)\\ & =P(\bar B|C) \end{align*} \]

可以看到两个值都取决于条件概率 $ P(B|C) $ 。而这个概率又和我们的 $ C $ 事件有关,我们就从不同的 $ C $ 的表述来讨论一下。

  • \(i\)

从最直觉的方面来想,主持人告诉了我们一个盒子为空,不妨假设为 2 号盒子,此时 \(C=2\,号盒子为空\),于是有:

\[P(B\cdot C)=\frac{1}{3}\;, P(C)=\frac{2}{3}\;\implies P(B|C)=\frac{1}{2} \]

于是乎,我们得到了得到结论一……没办法,我们只能认为这个假设 \(C\) 有点问题。怎么设置新的事件 \(C\) 呢?在某乎查到的一个观点给了我一些头绪,这个观点认为,如果主持人随机在另外两个盒子中开了一个,刚好是空的,那么结论一就是正确的。而如果主持人知道哪个盒子是空的,只打开这个,那么就是结论二正确。

  • $ ii $

顺着这个思路,我们考虑新的事件 $ C $ 。这回假设事件 $ C=主持人在,2、3,盒子里随机选取了一个,刚好没有奖 $ ,于是有:

\[设\,D=2\,号盒有奖\\ P(B\cdot C)=\frac{1}{3}\\ \begin{align*} P(C) & =P(C\cdot D)+P(C\cdot \bar D\cdot\bar B)+P(C\cdot B)\\ & =P(C|D)\cdot P(D)+P(C|\bar D\cdot\bar B)\cdot P(\bar D\cdot\bar B)+\frac{1}{3} \\ & =\frac{2}{3} \end{align*}\\ \therefore P(B|C)=\frac{1}{2} \]

果然,我们再次回到了结论一。

  • $ iii $

根据上面的讨论,我们不妨大胆猜测,只有 \(P(C)=1\) 时才能达到结论二。而上述观点的第二不妨刚好是这个情况。

在这种情况下,主持人知道哪个盒子是空的,也就是只打开空盒子。对于 \(C\) 更加贴切的表述应该是“打开了一个空的盒子”,而不是“打开的盒子是空的”。即 $ C=从剩下两个盒子中打开了一个空盒子 $ ,此时 $ P(C)=1 $ ,因为剩下的两个盒子至少有一个没奖!

结论

至此,我们得到一个可能的结论,将两种不同的结论归结于主持人的两种行为方式。但是我们仍然很难感性理解这个结论,我们可以对这个结论提出明显疑问:其一,为何主持人主观的行为方式会影响这个游戏;其二,作为游戏的参与者,我们只知道有一个盒子被打开了,为何会有两种结果。

对于第一点,我们要明白,概率永远是基于现有信息,而不是基于具体事物。主持人的行为方式恰恰不是一个简单的主观事件,而是影响关键事件概率的要点。如果说我们不是参加这个游戏的人,只是路过看到两个盒子中的一个有奖,那么概率当然是 \(1\over 2\) 。第二点则是这个问题违反直觉的原因,从参与者来看,我们很容易忽略主持人是知道盒子信息的,从而漏掉了一个条件。殊不知加上这个条件后,”有一个盒子被打开“完全变成了另一个事件。

终于,我们有了一个直觉和理论上都能满足需求的结论。最后不妨再用实验验证一下。

点击打开折叠的代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int pow(int x, int p) {
    int ret = 1;
    while (p) {
        if (p & 1 == 1) ret *= x;
        x *= x;
        p >>= 1;
    }
    return ret;
}
//重复试验1000000次
int t = 1000000;
//使用二进制表示是否有奖,如cha=1代表最初选择1号盒子
int state, cha = 1, chb;
//ans1/ans2表示奖在我们第一次选中的盒子的次数
//其中 ans1是主持人只选空盒,ans2随机选
//oth表示主持人随机选一个盒子,选中有奖的盒子的次数,
//用以调整随机选取情况的基数
int ans1, ans2, oth;
int main(int argc, char* argv[]) {
    srand((unsigned)time(NULL));
    while (t--) {
        state = pow(2, rand() % 3);
        chb   = pow(2, rand() % 2 + 1);
        if (chb & state) oth++;
        else if(cha & state) ans2++;
        if (cha & state) ans1++;
    }
    printf("%lf %lf", 1.0 * ans1 / 1000000, 1.0 * ans2 / (1000000 - oth));
    //0.333409 0.500310
    return 0;
}

(我觉得这种话里有话的题目……属实害人)

标签:bar,盒子,cdot,主持人,frac,问题,霍尔,int,蒙提
来源: https://www.cnblogs.com/thornblog/p/15961253.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有