一直想要个女儿. @happyukgo 可是条件不允许, 至少是暂时的吧.
然后就有这么一个问题: 如果大家要是一直生一直生直到生到女儿, 生到女儿就不生了, 这样大概来说男孩女孩比例还是 1:1 么?
如果生男孩是B, 生女孩是G, 只生一个大家都知道是50%的概率(染色体XX和XY结合 各50%的概率生男孩或生女孩). 如果一直生直到生女孩 这序列就是:
G, BG, BBG, BBBG, ….
关键来了, 好像男孩B比较多, 我们用P(B)表示生男孩的概率, P(A)表示生女孩的概率, P(BG) 表示生一男一女的概率 ..
还没生的时候, 再生一女孩 P(B)的总概率是1/2, 概率乘于男孩个数 = 0
当生一男孩后, 再生一女孩 P(BG)的总概率是1/4 (剩下50% 再乘于50%), 概率乘于男孩个数 = 1/4
当生二男孩后, 再生一女孩 P(BBG)的总概率是1/8 (剩下25% 再乘于50%), 概率乘于男孩个数 = 2/8
当生三男孩后, 再生一女孩 P(BBBG)的总概率是1/16 (剩下25% 再乘于50%), 概率乘于男孩个数 = 3/16
以此类推:
概率乘于男孩个数 =
把这些相加:
当 i 趋近于无穷大的时候 这值约为 1. 也就是说每个家庭生男孩子平均值为1 而我们知道每个家庭生女孩个数为1 所以男女比例50%:50%.
如果你还是有点不信 那么我们用VBScript程序来仿真一下吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | boys = 0 girls = 0 N = 100000 Function Gender Gender = Rnd() <= 0.5 End Function For i = 1 To N boy = 0 girl = 0 Do If (Gender) Then boys = boys + 1 Else girl = 1 End If Loop Until girl > 0 boys = boys + boy girls = girls + girl Next WScript.Echo boys / girls '1.00183 |
boys = 0 girls = 0 N = 100000 Function Gender Gender = Rnd() <= 0.5 End Function For i = 1 To N boy = 0 girl = 0 Do If (Gender) Then boys = boys + 1 Else girl = 1 End If Loop Until girl > 0 boys = boys + boy girls = girls + girl Next WScript.Echo boys / girls '1.00183
当 N 越来越大 这比例是越来越接近 1 所以生男生女都一样… 哎哎 真是羡慕 @tumutanzi
相关英文帖子: Boy or Girl? Python Validation
GD Star Rating
loading...
本文一共 403 个汉字, 你数一下对不对.loading...
上一篇: 软件工程师数据库面试技巧之 SQL中的第二名记录
下一篇: The Fox 英式午餐
扫描二维码,分享本文到微信朋友圈