V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ysmood
V2EX  ›  程序员

一个数学问题求解

  •  1
     
  •   ysmood ·
    ysmood · 2016-06-24 17:59:17 +08:00 · 3788 次点击
    这是一个创建于 3079 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设生男孩女孩的概率相同,每对夫妇会不断生孩子直到生出第一个女孩子,那么在有足够多的夫妇的情况下,最后男孩女孩比例是多少?

    求简洁易懂的数学证明。

    写了段代码,感觉是 1 ,但是没有想到简单的数学证明。

    var count = 10000;
    var boy = 0;
    var girl = 0;
    
    while (count--) {
        while (Math.random() < 0.5) boy++;
        girl++;
    }
    
    console.log(boy / girl); // 约等于 1
    
    22 条回复    2016-06-26 02:22:21 +08:00
    lance6716
        1
    lance6716  
       2016-06-24 18:09:37 +08:00 via Android
    几何分布…现在码农都不上高中的吗
    icecoffee
        2
    icecoffee  
       2016-06-24 18:10:51 +08:00
    几何分布?
    xwander
        3
    xwander  
       2016-06-24 18:17:10 +08:00
    不过以什么为结束生育的条件,男女比例都是 1:1
    skydirewolf
        4
    skydirewolf  
       2016-06-24 18:23:05 +08:00 via Android
    伯努力实验,孩子数量呈几何分布,好像在哪见过这个问题
    hinkal
        5
    hinkal  
       2016-06-24 18:23:56 +08:00 via Android
    3L 正解。你可以这样理解,每个夫妇都是从上帝那里取孩子,上帝生产孩子的男女比是 1 。因此不管你让多少人按什么规则取,都是 1
    a87150
        6
    a87150  
       2016-06-24 18:29:28 +08:00
    简单的数学证明: 50%+50%=1
    a87150
        7
    a87150  
       2016-06-24 18:30:38 +08:00
    @a87150 写错了,是除
    debiann
        8
    debiann  
       2016-06-24 18:33:48 +08:00 via iPhone
    把所有夫妇想成同一对夫妇,所有队列连成一个队列,很容易想明白,没什么区别
    Kilerd
        9
    Kilerd  
       2016-06-24 19:01:45 +08:00
    @a87150 加 也是 1
    binux
        10
    binux  
       2016-06-24 19:17:38 +08:00
    Math.random() 是独立事件

    ```
    while (count--) {
    while (1) {
    var rand = Math.random();
    if (rand < 0.5) {
    boy++;
    } else {
    girl++;
    }

    if (rand >= 0.5) {
    break;
    }
    }
    }
    ```

    这样能看懂了吧,不管 break 条件是什么,前面的语句都是独立的。
    guyskk
        11
    guyskk  
       2016-06-24 19:21:08 +08:00 via Android   ❤️ 1
    设生育次数为 X ,生男孩概率 p=1/2 ,生男孩的次数为 X-1 。则生育次数服从几何分布,生育次数的期望 E(X)=1/p=2 ,生男孩次数的期望 E(X-1)=1 ,所以男女比例是 1:1 。
    Akarin
        12
    Akarin  
       2016-06-24 19:31:49 +08:00
    > 每对夫妇会不断生孩子直到生出第一个女孩子。

    这个条件是无效的,并不会干扰到男女比例的结果。

    你可以这么认为。不断产生孩子,生男就分配给上一对夫妇,生女就 new 出一对新的夫妇。
    Yvette
        13
    Yvette  
       2016-06-24 19:51:10 +08:00   ❤️ 1
    假设生男孩女孩的概率相同,每对夫妇会不断生孩子直到生出第一个女孩子,那么在有足够多的夫妇的情况下,最后男孩女孩比例是多少?
    假设生男孩女孩的概率相同,每对夫妇会不断生孩子直到生出第一个男孩子,那么在有足够多的夫妇的情况下,最后男孩女孩比例是多少?

    很明显这两个问题一起看就知道答案了
    Exin
        14
    Exin  
       2016-06-24 19:54:52 +08:00 via Android
    @Akarin 你这个角度最有意思,好懂
    Mutoo
        15
    Mutoo  
       2016-06-24 20:11:39 +08:00
    若不对生育干预,每次生育都是独立事件,生男生女概率都是 50%,这道题的结果是 1:1 。因为对整体而言,孩子是谁生的无关紧要。但是在重男轻女和计划生育的双重压力下,有选择的生育(将女婴人工流产导致生男生女概率不均衡)会导致最终男女比例失调。
    参考「 为什么现在男女比例不是 1:1 ?」 https://www.zhihu.com/question/22104107
    SoloCompany
        16
    SoloCompany  
       2016-06-24 22:07:32 +08:00
    你会有男孩子多的错觉是因为第一胎就是女孩的都被你无视了
    只要是自然选择(不能通过人为手段杀死胎儿)
    无论规则怎么定,概率都是 50%
    owt5008137
        17
    owt5008137  
       2016-06-25 09:47:58 +08:00 via Android
    可以这么理解,无论采取什么样的策略,最终生了 N 胎吧?那平均概率不就是 2/N : 2/N
    innoink
        18
    innoink  
       2016-06-25 12:40:54 +08:00 via Android
    每对夫妇 生不出 男孩子的概率是 50% 也就是头一胎生出女孩子的概率 只有这一种情况

    这么说应该很明确了
    malusama
        19
    malusama  
       2016-06-25 13:08:41 +08:00
    高中生物会考……肯定有这种题吧
    vjnjc
        20
    vjnjc  
       2016-06-25 23:41:45 +08:00
    这个不是随机过程么?我大学才学的,学过懂过忘记怎么证明了 : )
    programgou
        21
    programgou  
       2016-06-26 02:05:47 +08:00
    想了一下,用最基本的概率知识就可以解决这个问题。

    我们不妨先求(~) [所有的夫妇平均生的孩子的个数] 吧,为了求出(~),我们先考虑样本空间,并且给每个样本点赋予概率值。我们用 0 表示女孩子, 1 表示男孩子,首先列出样本点:
    0
    10
    110
    1110
    ...
    每一行代表一对夫妇生的孩子的总数,我们分布用 w1,w2,w3,...,wn 表示。现在考虑 w 的概率,由于 0 和 1 是等概的,所以 P(w1) =1/2 。又因为样本空间总概率为 1,所以剩下的{w2,w3,...,wn}概率为 1-1/2=1/2 。我们再考虑 w2,w2 的概率 P(w3)显然是 1/2-1/2*1/2=1/4 (由于 0 和 1 是等概的)……依此类推, w3,w4,...,wn 的概率 P(w3),P(w4),...,P(wn)分别是 1/8,1/16,...,1/2^n 。接下来我们求(~),(~)实际上就是数学期望,因此,

    (~)=Σn*P(wn) = Σn*1/2^n = 2

    因此最后所有夫妇平均剩下两个孩子。又由于男孩女孩是等概的,所以,男女比例还是 1:1 。白忙活一场...
    证明完毕。
    programgou
        22
    programgou  
       2016-06-26 02:22:21 +08:00
    @Yvette 你这个思路很好很好,第一种情况, [每对夫妇会不断生孩子直到生出第一个女孩子] ,第二种情况, [每对夫妇会不断生孩子直到生出第一个男孩子] ,第一种情况+第二种情况=所有情况。因此最后男孩多还是女孩多,取决于每种情况的最后一个孩子,即男女概率,然而男女等概的,所以结论是 1:1 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:27 · PVG 02:27 · LAX 10:27 · JFK 13:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.