一个关于选择的小问题

来源:互联网 发布:淘宝店铺经营范围 编辑:程序博客网 时间:2024/06/05 06:53
    以前看过这样一个问题:一个人参加有奖答题,主持人给出了A、B、C三个选项。这个不知道问题的答案,就随便选了一个选项。然后主持人排除了剩下两个答案中的一个,告诉这个人有一次改变自己选项的机会。请问:这时候这个人该不该改变自己的选项?
    刚看到这个问题,我的第一反映是完全没必要,因为既然排除了一个错误选项,剩下两个选项中肯定是一个正确一个错误,那选谁都一样,反正对错都是50%。但是,真的是这样吗?
    我写了一个程序来模拟这种选择。程序的原理:每次随机生成三个数字x,y,z,每次默认选择x,然后比较y和z的值,删去其中较小的那个。之后拿x和剩下的那个数字比较,如果x的值大,说明答案正确;反正,答案错误。因为三个数字都是随机生成,所以每次选择x或者y或者z不会影响结果。y和z其中较小的那个值不可能是最大值,所以可以删去。
程序清单如下:
#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){    int a,b;    a=b=0;    int x,y,z;    while(a+b<1000000)    {        x=rand();        y=rand();        z=rand();        if(x==y||y==z||x==z) continue;        if(y<z)        {            if(x>z) a++;            else b++;        }        else        {            if(x>y) a++;            else b++;        }    }    printf("%d %d\n",a,b);    return 0;}


    我统计了十万组数据的结果,然后输出的答案让我很意外,是:33480 66520 
    很接近1:2的比例。也就是说,在不改变选项的情况下,这个人选项正确的概率应该是三分之一,错误概率应该是三分之二。
    然后我想了一下,在这个人做选择的时候,三个选项的结果可能有三种(Y代表正确,N代表错误):
    Y N N
    N Y N
    N N Y

    也就是说,默认每次这个人都选择第一个,我们会发现,在这三种情况中,只有第一种选项是正确的,后面两种选项都是错误的。但是如果这个人选择改变自己的选项,那么后面两种情况他都会是正确的,只有第一种情况会是错误的。这样我们可以很明显地看到,改变选项是一种非常明智的做法。

    还可以这样解释:在这个人做出选择之后,结果实际上就分成了两种,要么正确答案是这个人的选项,要么正确答案在剩下的选项里。第一种情况的概率是(1/3)*1=1/3,第二种情况的概率是(1/3)*2=2/3。在主持人删去一个选项之后,当前选项正确的概率是多少呢?是(1/3)/1=1。那么剩下的选项正确的概率是多少呢?(2/3)/(2-1)=2/3。这样考虑,当然应该选择改变自己的选项。

    看到一个很有意思的东西:点这里

    感觉世界观被改变了。

    
 
0 0