刚刚在A站看到这个,通过"主持人知道三扇门后面是什么"这条线索想出了答案.结论是:换的话胜率大一些.
为什么呢?假设我们一定会换门,那么当我们选择门a的时候,有三种情况(图): 因为这出现三种情况的概率都是1/3,所以假设我们一定会换门,那么我们有2/3的概率赢(情况2或3),只有1/3的概率输(情况1).所以换门的概率大一些.下面我们写个程序来证明这个结论:1 #include2 #include 3 4 #define TEST_TIMES 10000 5 int main(void) 6 { 7 long unsigned times = TEST_TIMES; 8 long unsigned win_times = 0; 9 srand(time(NULL));10 while (times--)11 if ((rand()%3) != 0) /* 1/3概率选到车子 */12 win_times ++;13 printf("%lf\n", (double)win_times / (double)TEST_TIMES);14 15 return 0;16 }
结果:louis@debian:~$ gcc three_doors.c -o tflouis@debian:~$ while :; do ./tf; sleep 1; done0.6674000.6613000.6627000.6647000.6632000.6651000.6590000.6669000.6729000.6721000.6641000.6714000.6664000.6628000.6775000.6762000.6521000.6728000.6615000.6638000.6605000.6703000.6684000.6559000.6703000.6666000.6684000.6595000.6644000.6639000.6724000.6721000.6660000.6640000.6676000.6685000.6594000.6581000.6574000.6658000.665400^Clouis@debian:~$ 可以看出,换门的话,胜率接近与2/3且比不换的胜率大,这与我们的结论是相符的.