以前在知乎上看到的一個問題,忽然想起來了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. 讓後代繼續這個迭代過程 ......