当前位置: 代码迷 >> C语言 >> 活跃一下气氛,这个概论问题我始终没有搞懂
  详细解决方案

活跃一下气氛,这个概论问题我始终没有搞懂

热度:184   发布时间:2008-01-19 02:01:09.0
-,-   解释清楚了给我加分

你先选了1号门,主持人打开没有车的2号门,现在又来了一个人,对于他来说1号门中的概率是1/2,但对你来说1号门中的概率是1/3。
为什么这么说呢
假如你选了以后就不换
那么让你选1000次,你的选法是什么样的呢,是不是每次都是3选1,主持人打开什么和你没关系的。

这是一个连续的整体。 你选了以后主持人打开门和主持人打开门你再选,是两个不同的题

不同之处你想明白了或许就懂了
----------------解决方案--------------------------------------------------------

/* 程序逻辑,该程序并不确定打开的门一定是羊 */

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

int main(void)
{
    int x, y, k;
    int car[3] = {0};
   
    srand((unsigned int)time(NULL));
   
    car[rand() % 3] = 1;      // 车的位置
   
    do{
        printf("请重3扇门中选一扇: ");
        k = scanf("%d", &x);
        while(getchar() != '\n');
    }while(k != 1 || (x < 1 || x > 3));
   
   
    do{            // 为了显示说明主持人不选那个被你选中的门
        y = -1;
        y = rand() % 3 + 1;
        if(y != x)
            break;
    }while(1);
   
    if(car[y - 1] == 1)
    {
        printf("很遗憾,你没有选中!\n");
    }
    else
    {
        do
        {
            printf("我为你打开了一扇门,里面没有车,你是否坚持你的想法?[Y/N] ");
            k = getchar();
            if(k != '\n')
                while(getchar() != '\n');
            k = toupper(k);
        }while(k != 'Y' && k != 'N');
        
        switch(k)
        {
            case 'Y':
                if(car[x - 1] != 1)
                    printf("恭喜你,换对了");
                else
                    printf("很不幸,你开始选的那个是对的。");
                break;
            case 'N':
                if(car[x - 1] == 1)
                    printf("恭喜你,你是对了");
                else
                    printf("很不幸,你选错了。");
                break;
            default :
                printf("发生了没有预料到的错误!");
                break;
        }
        
    }


    getchar();
    return 0;
}


[[italic] 本帖最后由 cosdos 于 2008-1-19 03:20 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]yxwsbobo[/underline][/bold] 于 2008-1-19 02:01 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1183663&ptid=197849][/url]
-,-   解释清楚了给我加分

你先选了1号门,主持人打开没有车的2号门,现在又来了一个人,对于他来说1号门中的概率是1/2,但对你来说1号门中的概率是1/3。
为什么这么说呢
假如你选了以后就不换
那么让你选1000次,你的选法是 ...


我并不关心第一次的选的,因为打开门之后我知道现在只剩2扇门了。即排除法,我干吗还去选2,现在只剩下1和3了。

题目中没有第三人,并且题目已知条件中是你看到了第二扇门是羊,然后主持人问你是否改变选项。(这里我只需要思考是继续选1,还是换选3)

[[italic] 本帖最后由 cosdos 于 2008-1-19 02:07 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
最好理解的情形还是放大

现在又1W个门有一个是对的,你选了一个,主持人只留下一个门,其它的全部都是错误的门,那么你现在要不要换呢,或者你认为你第一次选的概率是1/2么

1W个门,你选了一个,你的概率会应为主持人打开错误的门而变化么
----------------解决方案--------------------------------------------------------
中奖几率是 1/(n - x)

门n扇, 已知有错的门x 扇。

我会把注意力集中在剩余可能正确的门中。我开始选的那个只是剩余的可能门中的一扇。
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]cosdos[/underline][/bold] 于 2008-1-19 02:11 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1183668&ptid=197849][/url]
中奖几率是 1/(n - x)

门n扇, 已知有错的门x 扇。

我会把注意力集中在剩余可能正确的门中。我开始选的那个只是剩余的可能门中的一扇。


当然只有一个对的,那么n-x是1,中奖率是1么
----------------解决方案--------------------------------------------------------
你还是先把这个 你选了以后主持人打开门和主持人打开门你再选  哪里不同搞明白
----------------解决方案--------------------------------------------------------
为何把第一次的与第二次的和在一起呢。
----------------解决方案--------------------------------------------------------
你学过概率的吧,一个6面骰子仍两次都是1的概率怎么算
----------------解决方案--------------------------------------------------------
开始的是 n 扇门,

但对于我中奖的几率来所,本来有3扇门,但现在成了2扇,那我就可以2选1了,至少强于3选1。

给你1万扇,你选了一扇,我告诉你1-9998扇是错的,我让你重新选择,那你现在就可以进行二选一。
----------------解决方案--------------------------------------------------------
  相关解决方案