问题:
你参加了一个电视节目,主持人给你展示了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.