以前在知乎上看到的一个问题,忽然想起来了dom
大意是:spa
生孩子,剩下男孩就不生了,不然继续生。 而后有人说这个是没法影响男女平衡的。
虽然高中学过的几率告诉我:每一次都是独立事件。 可是这里有点反直觉了。
花了十几分钟写了段jscode
//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>
而后运行几遍,好像确实是没啥影响事件
如今这个模型还有点粗糙, 之后看有时间的时候完善一下get
1. 生孩子 2. 是男孩就中止,是女孩继续生 3. 第N个出生的是女孩, 就不继续生了 -------计划 1. 让后代继续这个迭代过程 ......