問題24 (boojam さん)
【ハノイの塔】
大きさの異なる8枚の円盤と垂直に立った3本の棒、A、B、Cがある。各円盤の中心には棒の太さと同じ大きさの穴が
空いていて、それぞれの棒に突き刺すようにして積みあげることができるようになっている。
最初、8枚の円盤は、一番大きい円盤が一番下、一番小さな円盤が一番上になるように、大きさの順に棒Aに積まれている。
この時、すべての円盤を棒Aから棒Bに移すことを考える。ただし、円盤の移動は、次の規則にしたがうこと。
規則1 円盤は1度に1枚ずつしか移動できない。
規則2 大きな円盤は小さな円盤の上には積むことができない。
規則3 円盤は任意の棒から棒へ移動できるだけで、その他の場所には移動できない。
《問題1》
最初に棒Aに積まれた8枚の円盤すべてを棒Bに移すには、最低でも何回の円盤の移動が必要か?
《詳細解答1》 255回
円盤を小さいものから順に、円盤1、円盤2、・・・、円盤8と名前を付ける。
最初棒Aの一番下に詰まれている一番大きな円盤8を、棒Bに移動するためには、上の7枚の円盤すべてを棒Cに移動する必要がある。
その後、棒Cにある7枚の円盤を棒Bへ移せば良い。次に、上の7枚を考える。この中の一番大きな円盤7を棒Cに移動するには、
上の6枚の円盤を棒Bに移動させる必要がある。
つまり、A1(n) を、n枚の円盤をある棒からある棒へ移動させる最少手順の数とすると、
A1(8) = A1(7) + 1 + A1(7)
: : :
: : → 棒Cにある7枚の円盤を棒Bに移動する
: → 棒Aにある円盤8を棒Bに移動する
→ 棒Aにある上の円盤7枚を棒Cに移動する
同様に、
A1(7) = A1(6) + 1 + A1(6)
A1(6) = A1(5) + 1 + A1(5)
A1(5) = A1(4) + 1 + A1(4)
A1(4) = A1(3) + 1 + A1(3)
A1(3) = A1(2) + 1 + A1(2)
A1(2) = A1(1) + 1 + A1(1)
A1(1) = 1
∵ 円盤が1枚だけなら、直接、元の棒から目的の棒へ移動すれば良いから。
それぞれ、逆順に計算していくと次のようになる。
A1(1) = 1
A1(2) = A1(1) + 1 + A1(1)
= 1 + 1 + 1 = 3
A1(3) = A1(2) + 1 + A1(2)
= 3 + 1 + 3 = 7
A1(4) = A1(3) + 1 + A1(3)
= 7 + 1 + 7 = 15
A1(5) = A1(4) + 1 + A1(4)
= 15 + 1 + 15 = 31
A1(6) = A1(5) + 1 + A1(5)
= 31 + 1 + 31 = 63
A1(7) = A1(6) + 1 + A1(6)
= 63 + 1 + 63 = 127
A1(8) = A1(7) + 1 + A1(7)
= 127 + 1 + 127 = 255
これが答え。
ちなみに、一般化すると、次のようになる。
A1(1) = 1
A1(n) = 2 * A1(n-1) + 1 [n > 1] … 【式 1-1】
これを解くには、2番目の式の両辺に1を足して、
A1(n) + 1 = 2 * A1(n-1) + 1 + 1
これを変形して、
A1(n) + 1 = 2 * A1(n-1) + 2
A1(n) + 1 = 2 * (A1(n-1) + 1) … 【式 1-2】
ここで、
B1(n) = A1(n) + 1
とおくと、上の【式 1-2】は、次のように表わされる。
B1(n) = 2 * B1(n-1)
また、
B1(1) = A1(1) + 1 = 1 + 1 = 2
だから、B1(n) は、初項 2、公比 2 の単純な等比数列。
B1(n) = 2^n = A(n) + 1 [n > 0]
∴ A1(n) = 2^n - 1 [n > 0]