关于“一道引起全美大学生举国辩论的逻辑题”的答案

刚作了了个关于这道题的模拟实验[flash版],大家可以动手试试.
http://blog.csdn.net/WiZiM/archive/2006/08/09/1042202.aspx

一道引起全美大学生举国辩论的逻辑题原题

假设你在进行一个游戏节目。现给三扇门供你选择:一扇门后面是一辆轿车,另两扇门后面分别都是一头山羊。你的目的当然是要想得到比较值钱的轿车,但你却并不能看到门后面的真实情况。主持人先让你作第一次选择。在你选择了一扇门后,知道其余两扇门后面是什么的主持人,打开了另一扇门给你看,而且,当然,那里有一头山羊。现在主持人告诉你,你还有一次选择的机会。那么,请你考虑一下,你是坚持第一次的选择不变,还是改变第一次的选择,更有可能得到轿车?

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 一道引起全美大学生举国辩论的逻辑题 那个帖子是我从论坛转过来的,因为自己想成为程序员,所以比起概率理论,自己更相信程序的结果。

以下转自CSDN论坛:

lumber(木材)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int main()
{
srand((unsigned)time(NULL));
int count_static = 0;
int count_change  =0;
for (int trytimes = 0; trytimes < 1000000; trytimes++) {
int carroom = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
int selected = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
if (carroom == selected)
count_static++;
}
printf("if you do not change you selection,you can select car %d times in 1000000 times/n", count_static);

srand((unsigned)time(NULL));
for (int trytimes2 = 0; trytimes2 < 1000000; trytimes2++) {
int carroom = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
int selected = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
int del_room = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
while(del_room == carroom || del_room == selected){ //delete room shouldn't be car room and select room
del_room = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
}
int select_again = 1+(int)(3.0*rand()/(RAND_MAX+1.0));

while(del_room == select_again || select_again == selected) {
select_again = 1+(int)(3.0*rand()/(RAND_MAX+1.0));
}

if (carroom == select_again)
count_change++;
}
printf("if you change you selection first,you can select car %d times in 1000000 times/n", count_change);

return 0;
}

 这个代码的运行结果,能够说明换了之后赢得汽车的概率是2/3!!比1/2要高。

大家请注意,换了之后赢车的概率2/3~~请大家记住这个真实的,经过程序1000000次随机测试的结果。想办法让自己相信这个答案然后再看下边的理论分析,不要在短时间否定这个实验结果!

------------------------------------------------------------------------------------------------------------------------------------------------------

请看理论的论证:

以下虽然也是转贴,但是自己的想法和这个人的想法出乎意料的一致,为了避免重复劳动,还是选择转贴:

jyk(喜欢编程。和气生财。共同提高。共同进步)

一扇门后面是一辆轿车,另两扇门后面分别都是一头山羊。你的目的当然是要想得到比较值钱的轿车,但你却并不能看到门后面的真实情况。主持人先让你作第一次选择。在你选择了一扇门后,知道其余两扇门后面是什么的主持人,打开了另一扇门给你看,而且,当然,那里有一头山羊。现在主持人告诉你,你还有一次选择的机会。那么,请你考虑一下,你是坚持第一次的选择不变,还是改变第一次的选择,更有可能得到轿车?

====================

这里有两个关键点:

1、在你选择了一扇门后,知道其余两扇门后面是什么的主持人 。

说明主持人是知道正确答案的,他一定会打开一个关着羊的门,而不是瞎蒙的。

2、更有可能得到轿车?

很明显,问的是可能性(概率),换和不换哪个概率高!
而不是说换了就一定能得到汽车!


结论:换的概率要比不换的高。

设想一个理想的环境:在特殊平均的情况下,猜三次

换的情况
1、我选中车,主持人打开了一个羊的门,我换了,结果得到了一只羊。

2、我选中羊a,主持人打开了另一个羊的门,我换了,结果得到了车。

3、我选中羊b,主持人打开了另一个羊的门,我换了,结果得到了车。

我猜三次,有两次会得到车。2/3

不换 的情况
1、我选中车,主持人打开了一个羊的门,我没有换了,结果得到了一只车。

2、我选中羊a,主持人打开了另一个羊的门,我没有换了,结果得到了羊a。

3、我选中羊b,主持人打开了另一个羊的门,我没有换了,结果得到了羊b。

我猜三次,只有一次会得到车。 1/3

 

什么?你说太绝对了。其实概率就是这样,才的次数少的时候,很没有规律,但是当你猜了10万次以后,你会发现概率就是这样。


自己最后把理论概括一下:

假如你当时抱着一定换的决心:

第一次选择时,你如果猜对了汽车(这种情况只有1/3的概率),你却执意要换,那么你的第二次选择将是羊(也就是说“这1/3的第一次选车的概率”变为了“1/3第二次选羊的概率”)。

第一次选择时,你如果选中了羊(这种情况有2/3的概率),你执意要换,那么你的第二次选择的将是车(因为,主持人帮你排除了一个错误的答案,也就是“这2/3第一次选羊的概率”变为了“2/3选车的概率”了)。

另外刚作了了个关于这道题的模拟实验[flash版],大家可以动手试试.
http://blog.csdn.net/WiZiM/archive/2006/08/09/1042202.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 89
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 89
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值