三个门的问题

来源:互联网 发布:父母装修房子哭了知乎 编辑:程序博客网 时间:2024/04/29 19:26

问题:

你参加了一个电视节目,主持人给你展示了3扇门,其中1个门后有巨额奖品,另2个门后是空的,并且主持人知道奖品在哪扇门后。如果你选择了A门,然后主持人打开C门,是空的,这时他问你是否要改变你的选择放弃A门选B门。 你会坚持你的选择吗? 

答案是:改变选择。

模拟整个过程的程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int i,choice,N=2000;
srand(time(NULL));
int not_change_succ=0;
int change_succ=0;
for(i=0;i<N;i++){
choice=rand()%3;
int guess=rand()%3;
int open;
if(guess==choice){
open=(choice+(-1)^(rand()%2)+3)%3;
not_change_succ++;
}else{
open=3-choice-guess;
change_succ++;
}

}
printf("The probility of winning when changing choice: %f\n",(double)change_succ/N);
}

答案是2/3

解释:第一次选择的门有奖品的概率是1/3.剩下两个门有奖品的概率是2/3.

主持人打开了剩下两个门中的无奖品的一个门后,剩下的另一个门后有奖品的概率仍然是2/3.

原创粉丝点击