見出し画像

一般化google卵問題

Yさんがどこかから問題を拾ってきた。

100階建てビルから落として卵の強度を調べる。
ある階よりも高くから落とすと割れてしまう。
卵の強度は共通で、2つまでは割ってもよいとする。
どのように調べれば最大検査回数を少なく抑えられるか。
その検査回数は何回か。

どうもネットでは有名なgoogleの入社試験の一部らしい。この問題の答え自体は「14回」で、検索すると解法付きで結構出てくる。たとえば

とか、他にもいろいろ。この問題自体は数学のパズルと言えるが、現実に電子デバイスのテストなんかではあり得る話である。例えば

ある素子に0V~100Vを印加して、どの電圧まで壊れないか1Vの精度で知りたい。手持ちの素子は2個しかない。テストごとに結構時間がかかる。なんとかその2個でナルハヤで終わらせて!

とか。

さて、ここでTさんが

「n階建てビルでm個の卵を使えるときは何回で検査可能になるか?」

と自然至極な拡張を持ち出す。OK, challenge accepted。一般化してみようじゃないか。

一般化卵落下問題

定式化を少し工夫する。出題の「n階建てビルでm個の卵を使えるときは何回で検査可能か?」ではなく、

m個の卵をk回使って調べるとして、何階建ての建物までなら卵の割れる階を特定できるか

と考える。この「何階建てまでなら」を関数F_m(k)と定義する。

画像1

1) 卵が1個の時

下から1階ずつ調べてどこで割れるか見るしかないので、

画像2

2) 卵が2個の時

k=1: 1回しか試せないなら卵1個も2個も同じ

画像3

k=2以上:
とある階から、今いる階にジャンプしてきた。
・ここで成功したら残り卵2個でk-1回検査可能。つまりF_2(k-1)階調べられる。
・ここで失敗だったらF_1(k-1)階調べられるから、漏れなく調べるには、前いた階はF_1(k-1)+1だけ下。(下図参照)

画像28

つまり、漸化式で表現すると

画像5

で、Mathemaicaで計算すると

画像11

はい、k=14ではじめて100を越えるので、卵2個なら100階のビルでもっとも効率良くやれば、14回以内に卵が割れる階を特定できることになる。

3) 卵がm個の時

m=2の時と同じように考える。

k<mのとき:
卵の個数より少ない階数しか試せないなら、試行回数は階数と同じになる。

k>=m:
とある階から、今いる階にジャンプしてきた。
・ここで成功したら残り卵m個でk-1回検査可能。つまりF_m(k-1)階調べられる。
・ここで失敗だったらF_m-1(k-1)階調べられるから、漏れなく調べるには、前いた階はF_m-1(k-1)+1だけ下。
つまり漸化式は

画像7

Mathematicaで計算させると

画像12

となる。これで一応、一般の場合の計算は出来るようになった。

もう少し考える

もっと解がエレガントにならないかもう少し頭を使って考える。
F_2(k)はその計算の経緯から言って、素直にsumで書けて

画像10

おお、なんかキレイ。じゃあF_3(k)はどうか?F_3(k)の漸化式を睨むと

画像11

なので、F_3(k)はF_2(k)の総和で書けそうだ。

画像11

うーん、F_3(k)の一般式はキレイにならない。ではF_3(k)-F_2(k)は?

画像12

おおお!これは綺麗だ!そうだよく考えると k(k+1)/2 = k (k-1)/2 + k だから、

画像13

summationを使って、

画像15

しかも、この中身は二項係数だから

画像16

となる。おおお!ただし、これは現時点ではあくまで予想である。

帰納的証明

では証明を

・m=1のとき

画像16

・一般のmで

画像18

ならば

画像20

となる(*)ことを示す。漸化式から

画像21

ここで以下の全てを準備して

画像22

これらを足し上げて、F_m(0)=0に留意すると

画像21

ここで

画像23

を使用すると(くわしくは補遺で)

画像26

よって(*)が証明された。

巨人の肩

じゃーん

画像27

や、これは美しいじゃないか。卵落とし問題が二項係数の総和で書き表せるなんて!

それで二項係数のWikipedia読んでたら

式(9)のすぐ下の記述に、まさにこの式が出てきて、

(この数式)に対する閉じた式は(超幾何函数を用いなければ)ない[8]が

フムフム、超幾何函数を使わなければこれ以上直接的な式にはならないと。それでこの文献[8]をみると

8. Boardman, Michael (2004), “The Egg-drop numbers”, Mathematics Magazine 77 (5): 368–372, JSTOR 3219201, MR1573776

ホワァッ!? Egg-drop numbers!? ぎゃぁー!私はこの文献にアクセスできるので恐る恐る読んでみると、まさにこの問題とおなじアプローチおなじ答え。

やっぱ大抵の問題は既に踏破されてる。巨人の肩の上に立つのは大変デス。笑

余談

最近読んでいた大栗博司先生の「探求する精神 職業としての基礎科学」(幻冬舎新書)によると

「超弦理論に関する博士論文で計算した係数列が、ラマヌジャンのテータ関数の級数であると20年後に気づいた」って書いてあって、さすが本物は二項係数ごときで喜んでいるようなsmall fishとは違うな、と思った。

補遺

二項係数のパスカルの法則

画像24

再帰的に使用すると

画像25

を得る。図解的にこれを理解しようとすれば、半自明である。下図の赤長丸の和が赤丸と同じになる(青も同様)、と理解できる。

画像25

#卵落下問題 #卵問題 #数学 #数学パズル #パズル #論理パズル #google入社試験 #入社試験 #二項係数



この記事が気に入ったらサポートをしてみませんか?