藏镜人's 小书桌

藏万卷书,看镜中人!

如何直观理解蒙提·霍尔悖论?

  蒙提霍尔悖论亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论、三门问题(Monty Hall problem)。是一个源自博弈论的数学游戏问题。

  这个游戏的玩法是:参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机会率?如果严格按照上述的条件的话,答案是:换门的话,赢得汽车的机会率是 2/3。
  这条问题亦被叫做蒙提霍尔悖论:虽然该问题的答案在逻辑上并不自相矛盾,但十分违反直觉。这问题曾引起一阵热烈的讨论。

  我也一直只是记住了这个答案,但是没有真正理解,直到我试图用程序来验证。

            int goon = 0;  //坚持选择
            int change = 0;  //改变选择
            for (int i = 0; i < 100; i++)
            {
                Random ran = new Random();
                int pos = ran.Next(1, 4);
                int guess = ran.Next(1, 4);
                if ((pos) == (guess))
                    goon++;
                else
                    change++;
                System.Threading.Thread.Sleep(20);
            }

  大家注意这一句 if ((pos) == (guess)) ,当我写下这句的时候,不用执行验证,就已经明白了。原来二次选择绝不是一次独立概率的选择!!

 

附录:

  关于程序的两个说明:
  1、演示使用C#代码;
  2、System.Threading.Thread.Sleep(20)这句是为了让Random这个随机数生成类可以有效生成不同的随机数。

评论
热度(1)