Schi Heil と叫ぶために

hiroakiuno's blog

ビルゲイツの面接試験―亀の子算編

【例題1】親亀が11匹います。その上に何匹かの子亀、そしてさらにその上に何匹かの孫亀がいます。上に他の亀を乗せていない亀の数を数えた所、56匹でした。さて、亀は全部で何匹いるでしょう?

Life is beautiful: ビルゲイツの面接試験―亀の子算編

頭が固いのでまずは方程式で解いてみよう。
子亀、孫亀の総数をそれぞれ\alpha,\betaと置くと、最終的に、11+\alpha+\beta が求まればよいことになる。
56匹の内訳を考えてみる。孫亀の上には誰も乗らないので\betaはそのまま56匹に含まれる。また孫亀を背中に乗せている子亀は\frac{\beta}{6}匹、子亀を背中に乗せている親亀は\frac{\alpha}{6}匹なので、56 = \beta + (\alpha-\frac{\beta}{6}) + (11-\frac{\alpha}{6}) つまり、(\alpha+\beta)=54 となり、答えは54+11=65匹。


これだけではつまらないのでもう少し考察。
実際に、\beta\leq\alpha\times6 という条件を考慮すると、(\alpha,\beta) = (54,0)(48,6)(42,12)(36,18)(30,24)(24,30)(18,36)(12,42) の可能性がある。(なんと孫亀はゼロかもしれない。)
言い換えると子亀、孫亀がそれぞれ何匹かを求めなくても答えは出た。実は子亀と孫亀の区別はしなくてもよかったのだ。つまり、ある亀の上に6匹乗っかると全体として誰も乗っていない亀は5匹増えるとだけ考えればよく、56から11を引いた45を5で割った9というのが、背中に誰かを乗せていいる亀の総数なので、9\times6 + 11 = 65でよかったのか。確かにこれなら暗算でできる。