生男生女的概率问题

阿里巴巴2014暑期实习招聘的一道题目
大概意思是:一个家庭如果没有生出来男孩,那么就可以一直生孩子,直到生到男孩为止,那么平均每户家庭有多少女孩
我列出了大概的公式:n*(0.5)^(n+1)之和
但是不会算。。求怎么算

阅读 7.7k
3 个回答

额没学过概率的问题,不过我模拟了下"造人计划"算了一下,假设生与不生,生男生女的概率都是1/2。

//设置初始化量
$families = 10000000;
$girls = 0;
//设置一个概率函数,为了让随机足够随机范围选的很大不知道有没有用
function rands() {return rand(0,100000000)%2;} 

for($family = 0; $family < $families; $family++) {
    //每个家庭最开始是没有男孩的
    $boy = false;
    //要生孩子的话就要开始造人啦!
    do {
        //不排除丁克家庭和生了没钱养不想再生的
        if($born = rands()) {
            //生了女孩就愁还要不要生啦,生了男孩就皆大欢喜啦!
            if(!$boy = rands()) {
                ++$girls;
            } else {
                break;
            }
        }
    }while(!$boy);//唔唔,没有男孩还要生!生你妹啊真的是母猪转世么!        
}

//输出平均每个家庭多少个女孩
echo $girls/$families;

可以自己再扩大家庭数量和随机返回让其更精确。最后提倡一下:生男生女都一样!哈哈哈!

假设有 n 个家庭(h1 代表家庭1,h2 代表家庭2,以此类推,m 代表男,f 带表女):

家庭编号:生男女的可能-概率---------------女生个数
h1 : m----------------0.5--------------------0
h2 : fm---------------0.5 * 0.5--------------1
h3 : ffm--------------0.5 * 0.5 * 0.5--------2
...
hn :fff...fm---------0.5^(n-1)--------------(n-1)
        ^
     (n-1个f)

则有:
avg(f) = 0 * 0.5^1 + 1 * 0.5^2 + 2 * 0.5^3 +...+ (n-1) * 0.5^n


说明:不考虑不生不育的情况,另外就是生男生女概率相同。


附图:
请输入图片描述

其實不用算。

首先這種做法並不會改變男孩女孩出現的概率,所以平均的女孩數肯定等於平均男孩數,也就是 1。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进