之前在知乎上看到的一个问题,突然想起来了
大意是:
生孩子,剩下男孩就不生了,否则继续生。
然后有人说这个是无法影响男女平衡的。
虽然高中学过的概率告诉我:每一次都是独立事件。
但是这里有点反直觉了。
花了十几分钟写了段js
//js
let all_boy = 0;
let all_girl = 0;
let households = 10000000; //一千万
let max = 5;
let current = 0;draw();
while(households > 0){let res = game(households);all_boy += res.boy;all_girl += res.girl;households = res.households;draw();console.log(res);if (++current >= max){break;}
}
function draw(res){document.querySelector("#over").textContent = households;document.querySelector("#boy").textContent = all_boy;document.querySelector("#girl").textContent = all_girl;document.querySelector("#diff").textContent = all_boy - all_girl;
}function game(households){let next = households;let boy = 0;let girl = 0;for(let i = 0; i<households; i++){if(getSex()){boy++;next--;}else{girl++;}}return {households:next,boy,girl,};
}
function getSex(){$rand = Math.random();if($rand == 0.5){return getSex();}else{return $rand > 0.5;}
}
<style>.name{display: inline-block;width: 120px;}
</style>
<div><div><span class="name">剩余户数</span><span id="over">0</span></div><div><span class="name">男</span><span id="boy">0</span></div><div><span class="name">女</span><span id="girl">0</span></div><div><span class="name">相差</span><span id="diff">0</span></div>
</div>
然后运行几遍,好像确实是没啥影响
后续
现在这个模型还有点粗糙, 以后看有时间的时候完善一下
1. 生孩子
2. 是男孩就停止,是女孩继续生
3. 第N个出生的是女孩, 就不继续生了-------计划
1. 让后代继续这个迭代过程
......