8
高校数学解説
文献あり

卵2個で落としたら割れる階数を調べる問題とメルカトル級数

3946
0

はじめに

最近Twitterで話題になっている、ビルの何階から落とすと卵が割れるかを卵を2つだけ使って調べる回数の問題について考えていたところ、メルカトル級数の式があらわれてビックリしたのでこの記事を書きました。

問題の確認

この問題は、かつてGoogleの入社試験で出たといわれている問題です。
なるべく正確に問題の内容を確認します。

Googleの入社試験で出たといわれる問題

100階建てのビルから卵を落としたとして、どの階までなら割れないか、そしてどの階からだと割れるか、知りたいとします。その階を見つけるには、そしてその階を決めるためにかかる最大の回数を一番小さくするにはどうしたらいいでしょうか。
次の仮定が成り立つとします。
・落として割れなかった卵はもう一度使えます
・割れた卵は二度と使えません
・落下時の衝撃はどちらの卵でも変わりません
・落とした卵が割れたら、それより上の階から落としても割れます
・落とした卵が割れなかったら、それより下の階から落としても大丈夫

・引用元
卵2個で、落としたら割れる階を特定する
Puzzle | Set 35 (2 Eggs and 100 Floors)

メルカトル級数の確認

メルカトル級数とは、log2 が出てくる次のような無限級数です。

メルカトル級数

112+1314+1516±=log2

問題の一般化

ここでは、あえて問題を次のように一般化します。

一般化した問題

n 個の卵を使って、最大 k 回の試行で、ビルの何階までなら割れないか、そしてどの階からだと割れるかを調べられる最大のビルの階数を an,k とします。 an,kn,kの式で表してください。

次の仮定が成り立つとします。
・落として割れなかった卵はもう一度使えます
・割れた卵は二度と使えません
・落下時の衝撃はどちらの卵でも変わりません
・落とした卵が割れたら、それより上の階から落としても割れます
・落とした卵が割れなかったら、それより下の階から落としても大丈夫

漸化式を作る

割れなかった卵は再利用できますので、1階から順に調べれば確実に割れる階を調べられます。
すなわち、卵を1個使って、k 回の試行をすれば、k 階までを調べることができます。
式にすると
a1,k=k

また、卵が何個あったとしても、1回の試行では1階しか調べることはできません。
式にすると
an,1=1

次に、漸化式を考えます。

たとえば、50階建てのビルを5個の卵を使って調べるとして、最初の1個目を20階から落としたとします。
もし、20階から落とした卵が割れなかったら、次に21~50階を5個の卵で調べることになります。卵が割れたら、次に1~19階を4個の卵で調べることになります。

これを一般的化して調べられる最大の階数を考えれば、次の漸化式が得られます。

an,k=an,k1+1+an1,k1

漸化式

{a1,k=kan,1=1an,k=an,k1+1+an1,k1

さて、漸化式を繰り返し使って、an,an1, で表すことを考えます。

an,k=an,k1+1+an1,k1=(an,k2+1+an1,k2)+1+an1,k1=an,k2+2+(an1,k2+an1,k1)=an,k3+3+(an1,k3+an1,k2+an1,k1)=an,k4+4+(an1,k4+an1,k3+an1,k2+an1,k1)=an,1+(k1)+j=1k1an1,j=k+j=1k1an1,j=1+j=1k1(an1,j+1)

(an,k+1)=2+j=1k1(an1,j+1)
式を見やすくするため、次のような bn,k を導入します。

bn,k=an,k+1

bn,k を使ってこれまでの式を書き直すとこうなります。

{b1,k=1+kbn,k=2+j=1k1(bn1,j)

なかなかいい感じになってきましたね。さらに漸化式部分を計算するために、下降階乗冪と和分を使います。

下降階乗冪と和分

下降階乗冪とは次のような演算です。

下降階乗冪(factorial power)

tm=t(t1)(t2)(tm+1)

たとえば
  53=543=60
となります。
下降階乗冪を使うと、「積分」の離散バージョンの「和分」として、次の式が成り立ちます。

和分

  t=0n1tm=nm+1m+1(m0)

式の形から、これは積分の
  0nxmdx=nm+1m+1

の離散バージョンと解釈できます。

和分を使って閉じた式にする

さて、和分の公式を使えば bn,k を閉じた式にできます。

b1,k=1+kb2,k=2+j=1k1(1+j)=1+j=0k1(1+j)=1+k11!+k22!b3,k=2+j=1k1(1+j11!+j22!)=1+j=0k1(1+j11!+j22!)=1+k11!+k22!+k33!

以下同様に繰り返すことで次の式を得ます。

bn,k=1+k11!+k22!+k33!++knn!=j=0nkjj!

一般化した問題の答え

an,k=bn,k1
なので一般化した問題の答えは次のようになります。

答え

an,k=j=1nkjj!

とてもシンプルな式になりましたね!

具体例

得られた式をもと表を作るとこんな感じになります。

具体例
k \ n12345678
111111111
223333333
336777777
4410141515151515
5515253031313131
6621415662636363
77286398119126127127
883692162218246254255
9945129255381465501510
1010551753856378479671012
1111662315611023148518151980
1212782987931585250933013796
13139137710922379409558117098
1414105469147034726475990712910
15151205751940494399481638322818

例えば、「卵2個13回の試行」で調べられる最大の階数は91階で、「卵2個14回の試行」で調べられる最大の階数は105階ですから、冒頭のGoogleの入社試験の問題での試行回数は最大14回ということになります。

105階のビルで試行する場合で考えると、最初の1回は14階から落とし、
①割れた場合は1~13階を「13階建てのビル」とみなして1個の卵で引き続き調べ、
②割れなかった場合は15~105階を「91階建のビル」とみなして2個の卵で引き続き調べればよい
ということも表から読み取ることができます。

表でいうと、「卵が割れたら左上へ1つ移動し、割れなかったら上へ1つ移動する」という操作が試行に対応していることになります。

具体例 具体例

Desmos検算

離散バージョンのマクローリン展開

ところで、先ほどの
bn,k=1+k11!+k22!+k33!++knn!

は離散バージョンの 2k のマクローリン展開(の途中項まで)と解釈することができます。
つまり
2k=1+k11!+k22!+k33!+=1+k1!+k(k1)2!+k(k1)(k2)3!+

という式が成り立っています。

メルカトル級数との関係

一方で、2k を普通にマクローリン展開するとこうなります。
2k=1+log(2)k1!+log2(2)k22!+log3(2)k33!+

離散バージョンと普通バージョンの1次の項の係数を比較すると

log(2)1!=11!+12!+(1)(2)3!+(1)(2)(3)4!+=112+1314±

となって、メルカトル級数の式が現れました!

卵の問題からメルカトル級数の式が出てくるとは、ビックリだと思いませんか?

参考文献

投稿日:202147
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

apu_yokai
apu_yokai
486
66045

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 問題の確認
  3. メルカトル級数の確認
  4. 問題の一般化
  5. 漸化式を作る
  6. 下降階乗冪と和分
  7. 和分を使って閉じた式にする
  8. 一般化した問題の答え
  9. 具体例
  10. 離散バージョンのマクローリン展開
  11. メルカトル級数との関係
  12. 参考文献