「10億人の小人」問題

id:noharra:20050508 に, Ecellのフォーム/ソースが公開された. さっそく, 指定にしたがって入力, A4とG3のセルをずるずると下にコピー.


A3の人数を替えながら遊んでみる.

と,動作がおかしい. 入力内容を点検すると「-」と「+」を間違えていたので, 訂正.




A3の人数を替えながら遊んでみる.

と,あいかわらず動作がおかしい.


A5のセルが =c4+d4 と使っている c4,d4のセルが空なのに気づいて, B3からF3までのセルをずるずると下へコピーして,完成した. 取り扱い説明書に

B3:G3を下にずっとコピー

とあるのに, 「B3:」を読み落としていたのだった. 以上, 2件とも あたしのちょんぼ.



答えが出るG1セルを =sum(g3:g50) と大きくして「10億人の小人」問題を解いてみた. → #9,2625,8177 が最後に残る.


id:dempax:20050510 の方法で解くと

 2^30=10,7374,1824>10^9>2^29=5,3687,0912

であるから, 最後に残る小人は

(10^9-2^29)*2+1=9,2625,8177

と動作は問題なし. アルゴリズムがどうなっているのか, 考え中.