いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

ハノイの塔

 「バラモンの塔」とも言うそうです。n枚の大きさが違うメダルがあります。図のように大きいメダルの上に小さいメダルが重ねられています。このメダルの塔を、今あるAからCへ移します。その際には

①1回に動かせるのはメダル1枚

小さなメダルの上に大きなメダルを乗せてはいけない

というルールを守らなければなりません。1枚動かすのを1手と数えることにするとき、何手で移し終えるでしょうか。64枚のメダルの塔を移し終えたとき、世界が終わるという伝説があるそうな……。

f:id:Inuosann:20200925160826p:plain

n枚を移すのに必要な手数をf(n)と表すとき、

f:id:Inuosann:20200925162717p:plain

であることを数学的帰納法で示します。

(第1段階)

n=1のとき、f(1)=1なので、確かに成立しています。

(第2段階)

n=kのとき、必要な手数は

f:id:Inuosann:20200925163026p:plain

であると仮定しましょう。メダルがk+1枚のとき何手かかるか考えます。k枚をBに移すのにf(k)手かかります(下の図)。

f:id:Inuosann:20200925160754p:plain

ここからAにある1枚をCに移すのに1手かかります(下の図)。

f:id:Inuosann:20200925160920p:plain

Bにあるk枚をCに移すのにf(k)手かかります(下の図)。

f:id:Inuosann:20200925161121p:plain

すると結局、k+1枚のときにはf(k+1)=f(k)+1+f(k)=2f(k)+1手かかります。つまり

f:id:Inuosann:20200925163943p:plain

となり、証明されました。

 紙を切って(つまみやすく)3枚くらいで実際にあれこれ動かすと何をどうすればよいのかよく分かります。自分で実験してみることです。数列の知識を使っても解けます。f(n+1)=2f(n)+1なのですから、教科書の例題に出てくるあの漸化式の問題です!

 

 まあこれでいいんですが……。違和感はありませんか? これでいいんでしょうか? ここまでで示せたことは「f(n)手で塔を他の場所に移せる」という事実です。これ自体は正しいけれど、「これがどうしても必要な手数である」ということはまだ示していません。つまり、もっと短い手数で移動できるかどうか、何も考えていないのです。この手順を見てみるとどうも他にもっと短い手数の方法などなさそうな気はします。でも断言はできません。……というわけでご存じの方、教えて下さい……。