ゲーム一覧

ハノイの塔の解き方(最短手数と公式)

一番小さい円盤を1回おきに同じ向きへ回すと、何段でも最短の2n−1手でそろいます。

ハノイの塔を遊ぶ(無料・3段〜10段)

小さい円盤を1回おきに同じ向きへ回す

はじめ:4枚を全部右の棒へ移す

4段の最短は15手(24−1)・4段で遊ぶ

3段は7手・4段は15手でそろう

円盤の番号は小さい順。左・真ん中・右は棒です。

3段の答え(7手)

  1. 1左→右
  2. 2左→真ん中
  3. 1右→真ん中
  4. 3左→右
  5. 1真ん中→左
  6. 2真ん中→右
  7. 1左→右

4段の答え(15手)

  1. 1左→真ん中
  2. 2左→右
  3. 1真ん中→右
  4. 3左→真ん中
  5. 1右→左
  6. 2右→真ん中
  7. 1左→真ん中
  8. 4左→右
  9. 1真ん中→右
  10. 2真ん中→左
  11. 1右→左
  12. 3真ん中→右
  13. 1左→真ん中
  14. 2左→右
  15. 1真ん中→右

最短手数は2n−1(4段なら15手)

円盤が n 枚(n段)なら、2を n 回かけて1を引いた数が最短手数です。

段数最短手数1秒に1手なら
3段7手7秒
4段15手15秒
5段31手31秒
6段63手1分3秒
7段127手2分7秒
8段255手4分15秒
9段511手8分31秒
10段1,023手17分3秒

n段の手数は「1つ少ない段×2+1」

一番大きい円盤を動かすには、上の円盤を全部よけておく必要があります。

1上の3段を
真ん中へ7手
2一番大きい
円盤を右へ1手
33段を右へ
また7手
4合計15手
=7×2+1

だから1段増えるごとに「2倍+1」。手数に1を足すと倍々になり、n段の最短は 2n−1 手です。

段数12345
最短手数1371531
+1すると2481632

数列の漸化式なら an=2an−1+1 を an+1=2(an−1+1) と変形して解きます。

よくある質問

最初の1手はどこへ?
奇数段は右の棒、偶数段は真ん中の棒へ一番小さい円盤を動かす
どうしてこれより短くできない?
一番大きい円盤を動かす前とあとに、ほかの円盤を全部1本に集める必要があるから
それぞれの円盤は何回動く?
一番小さい円盤が全体の約半分(2n−1回)。1つ大きくなるごとに半分になり、一番大きい円盤は1回
覚え方はほかにある?
最短の手順では、奇数番の円盤どうし・偶数番の円盤どうしを重ねない
途中の形から最短で解くには?
一番大きい円盤から考える。右の棒にあればそのままにし、無ければそれより小さい円盤を全部残りの1本へ寄せてから動かす
真ん中の棒へ移すときは?
回す向きが逆になる。奇数段なら 左→真ん中→右 の向き
棒が4本なら?
1〜8枚の最短は 1・3・5・9・13・17・25・33手。1枚ごとの増え方は、2が2回・4が3回・8が4回…と続く
プログラムではどう書く?
「n−1段を真ん中へ・n番を右へ・n−1段を右へ」を同じ関数の中で呼ぶ(再帰)
ゲームで練習できる?
3段〜10段と今日の問題(ばらばらの5枚)。「ヒント」で最短の次の一手が光る
ハノイの塔を遊ぶ(無料・3段〜10段)