关于三扇门后面奖品的概率问题

来源:互联网 发布:windows docker 编辑:程序博客网 时间:2024/05/06 19:58

前不久去面试,有一道题目:

三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let's Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机会率?如果严格按照上述的条件,即主持人清楚地知道,哪扇门后是羊,那么答案是会。不换门的话,赢得汽车的几率是1/3。换门的话,赢得汽车的几率是2/3。(来自百度百科)

一开始并想不通,面试的时候也答错了,表现十分糟糕。一开始是想,既然主持人会踢掉一扇门,那么中与不中概率不就是相等了?

回来后索性就写perl脚本计算一下,写的过程中意识到其实中奖与否与主持人后面踢掉门关系并不大。贴上代码吧:

use Math::Random::OO qw( Uniform UniformInt Normal Bootstrap );;use Data::Dumper;my @arrg=([0,0,1],[0,1,0],[1,0,0]); ####三扇门1代表的是汽车,三种可能的摆放顺序my ($huan,$buhuan);for my $n(1..10000){                   ####做1w次的实验    my $arrg_num= Math::Random::OO::UniformInt->new(0,2)->next();  ####节目组随机选择一种汽车摆放顺序    my $chose = Math::Random::OO::UniformInt->new(0,2)->next();  ####选手随机选取一扇门        my @car=grep{$arrg[$arrg_num][$_]==1}0..2;    my @nocar=grep{$arrg[$arrg_num][$_]==0}0..2;        $huan++ if($chose ~~ @nocar);   ####如果改变选择得到汽车,只有一开始选择的不是汽车的门,后面换门才会得到汽车    $buhuan++ if($chose ~~ @car);   ####如果不改变选择得到汽车,只能一开始就是汽车的门    }print "change:$huan, presist:$buhuan";


运行结果是 change:6597, presist:3403 也就是换门得到汽车的概率几乎是不换门的两倍!


写的时候才发现逻辑就是这么简单:
如果改变选择得到汽车,只有一开始选择的不是汽车的门,后面换门才会得到汽车
如果不改变选择得到汽车,只能一开始就是汽车的门
所以换门得到汽车的概率就是不换的2倍,什么主持人踢门都是障眼法!!!


这个故事告诉我们学好概率是发家致富新途径,还有做人太固执不好。

0 0
原创粉丝点击