生男生女的概率问题


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

概率 阿里巴巴

二头Neo 11 years, 5 months ago

额没学过概率的问题,不过我模拟了下"造人计划"算了一下,假设生与不生,生男生女的概率都是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;

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

沃勒割草斯密达 answered 11 years, 5 months ago

Your Answer