

ハノイの塔(ベナレス寺院の問題[ 1 ] 、ブラフマーの塔またはルーカスの塔[ 2 ]とも呼ばれ、複数形ではタワーズ、または単にピラミッドパズル[ 3 ]とも呼ばれる)は、3本の棒と、直径の異なる複数の円盤で構成される数学ゲームまたはパズルで、円盤はどの棒にもスライドさせることができます。パズルは、円盤が1本の棒に小さい順に積み重ねられ、一番上に最小の円盤が置かれ、円錐形に近似した状態から始まります。パズルの目的は、次のルールに従って、積み重ねた円盤全体を他の棒のいずれかに移動することです。[ 4 ]
3枚のディスクを使えば、7手でパズルを解くことができます。ハノイの塔パズルを解くのに必要な最小手数は2n -1です。ここでnはディスクの枚数です。
このパズルはフランスの数学者エドゥアール・リュカによって考案され、1883年に「N. Claus (de Siam)」(「Lucas d'Amiens」のアナグラム)によって発見されたゲームとして初めて発表され、[ 5 ] [ 6 ] [ 7 ]後に1889年に小冊子として出版され[ 8 ] 、また死後に出版されたリュカの『Récréations mathématiques』にも収録された[ 9 ]。ゲームには説明書が付属しており、ゲームの起源はトンキンにあるとされ、伝説によれば、ベナレスの寺院のバラモンたちが、ゲームと同じルールに従って64枚の金の円盤からなる「ブラフマーの聖なる塔」を動かしており、塔が完成すると世界の終わりが訪れると主張している。[ 10 ]この伝説には、パズルの古代的で神秘的な性質に関して、数多くのバリエーションが存在する。[ 5 ]
1秒間に1回の移動という速度で、64枚のディスクを完成させるのにかかる最短時間は2 64 − 1秒、つまり5850億年となり、これは宇宙の 現在の推定年齢の約42倍に相当する。[ 11 ]
この伝説には多くのバリエーションが存在する。例えば、いくつかの伝承では、寺院は修道院であり、僧侶は僧侶であるとされている。寺院や修道院はハノイを含む様々な場所にあり、あらゆる宗教と関連付けられる可能性がある。また、塔が世界の始まりに建てられた、僧侶は1日に1回しか動けない、といった要素が加えられたバージョンもある。
このパズルは任意の数のディスクで遊ぶことができますが、多くの玩具版では7~9枚程度のディスクが使われています。n枚のディスクを使ったハノイの塔パズルを解くのに必要な最小移動回数は2n -1です。[ 12 ]

このおもちゃのパズルを解く簡単な方法は、1) 一番上のピースを動かすことと、2) 別のピースを動かすことを交互に行うことです。
1. 上部を動かすときは、常に同じ方向に次の位置へ移動させます。これは、最初のピースの数が偶数の場合は右方向、奇数の場合は左方向です。
私たちは、塔が円形に並んでいる、あるいはパズルの図が水平方向に一周している、つまり最初の塔から左に移動すると3番目の塔に、3番目の塔から右に移動すると最初の塔に戻ってくる、と想像します。
つまり、ステップ1、3、5、7…では、ピースの数が偶数の場合はA > B > C > A…の順に、ピースの数が奇数の場合はA > C > B > A…の順に上部を配置します。
2 の場合、別の駒を動かすときは、常に合法な動きは 1 つだけです。なぜなら、どの駒も最小の駒の上に移動させることはできず、他の駒の任意の組み合わせのうち、1 つだけが他の駒に合うからです。
ステップ1、2、1、2、…を正しく実行すれば、最小の手数でパズルを完成させることができます。[ 13 ]
反復解法は、目標が達成されるまで、以下の手順を繰り返し実行することに相当します。
この方法に従うと、ディスクの枚数が奇数の場合はスタックはペグBに、偶数の場合はペグCに収まります。順番を変えると結果も変わります。
こうすることで、ディスクの枚数が偶数の場合はスタックはBのペグに、奇数の場合はCのペグに収まるようになります。

問題を再帰的に解決する鍵は、問題をより小さなサブ問題の集合に分解できることを認識することです。それぞれのサブ問題には、私たちが求めている一般的な解決手順が適用され、それらのサブ問題の解から、何らかの簡単な方法で全体の解が見つかります。作成された各サブ問題が「小さい」ということは、最終的に基本ケースに到達することを保証します。ハノイの塔の場合:
n 個のディスクすべてがペグ間で有効な配置で分配されていると仮定します。ソースペグにはm個のトップ ディスクがあり、残りのディスクはすべてmより大きいため、安全に無視できると仮定します。予備のペグを使用して、ルールに違反することなく、ソース ペグからターゲットペグにm 個のディスクを移動します。
完全なハノイの塔の解法では、n 枚の円盤を始点の杭 A から終点の杭 C に移動させ、B を予備の杭として使用します。
このアプローチは数学的帰納法を用いて厳密な数学的証明を与えることができ、プログラミング教育において再帰の例としてよく用いられる。
多くの数学パズルと同様に、解を見つけるには、もう少し一般的な問題を解くと簡単になります。つまり、高さhの円盤の塔を、開始ペグf = A (from) から目的地ペグt = C (to) に移動する方法です。ここで、B は残りの 3 番目のペグで、t ≠ fとします。まず、この問題はペグの名前の順列に対して対称であることに注目します (対称群S 3 )。ペグAからペグCへの移動の解がわかっている場合、ペグの名前を変更することで、開始ペグと目的地ペグの他のすべての選択肢に対して同じ解を使用できます。円盤が 1 つしかない場合 (またはまったくない場合)、問題は自明です。h = 1 の場合、円盤をペグAからペグCに移動します。h > 1 の場合、移動のシーケンスのどこかで、最大の円盤をペグ A から別のペグに移動する必要があります。できればペグCに移動してください。この移動が可能な唯一の状況は、すべてのより小さいh − 1 個のディスクがペグB上にある場合です。したがって、まずすべてのh − 1 個のより小さいディスクをAからBに移動する必要があります。次に、最大のディスクを移動し、最後にh − 1 個のより小さいディスクをペグBからペグCに移動させます。最大のディスクの存在は、 h − 1 個のより小さいディスクの移動を妨げないため、一時的に無視できます。これで問題は、h − 1 個のディスクをあるペグから別のペグに移動することに縮小されます。最初はAからBへ、次にBからCへですが、ペグの名前を変更することで、両方の場合に同じ方法を使用できます。同じ戦略を使用して、h − 1 の問題をh − 2、h − 3 などに縮小し、ディスクが 1 つだけ残るまで続けることができます。これは再帰と呼ばれます。このアルゴリズムは次のように図式化できます。
円盤を、0からhまでの自然数(hは含まない)で大きさが小さい順に並べます。したがって、円盤0が最小で、円盤h -1が最大です。
以下は、h個の円盤からなるタワーを杭Aから杭Cに移動させる手順です。Bは残りの3番目の杭です。
数学的帰納法を用いると、上記の手順が可能な限り最小の移動回数を必要とし、生成された解がこの最小の移動回数を持つ唯一の解であることが容易に証明できます。漸化式を用いると、この解に必要な正確な移動回数は次のように計算できます。この結果は、ステップ 1 と 3 がステップ2では、移動を1回行い、。
再帰アルゴリズムによって生成される、塔をある杭から別の杭へ移動させる際の移動手順のリストには、多くの規則性があります。移動を1から数えると、移動mで移動するディスクの順序は、 mを2で割り切れる回数になります。したがって、奇数番目の移動では最小のディスクが使用されます。また、塔の高さが奇数の場合は最小のディスクが杭f、t、r、f、t、rなどを通過し、塔の高さが偶数の場合は杭f、r、t、f、r、tなどを通過することもわかります。これにより、再帰アルゴリズムよりも手作業で実行しやすい、以下のアルゴリズムが得られます。
代替案:
最初の動きでは、hが奇数の場合は最小のディスクを杭tに置き、 hが偶数の場合は杭rに置く。
また、以下の点にも注意してください。
この知識があれば、最適解の中間にある一連のディスクを、各ディスクの位置以外の状態情報なしに復元することができる。
n 枚のディスクを使ったパズルにおけるディスクの位置は、移動番号mの二進数表現から直接求めることができます。例えば、8 枚のディスクを使ったハノイの塔における移動m = 216 の詳細はすべて、反復計算や再帰計算を行うことなく、また以前の移動やディスクの配置を参照することなく計算できます。逆に、有効なディスク配置が与えられれば、その配置を実現するための移動番号を計算することができます。
円盤のサイズを降順にn、n -1、…、1とします。杭A、B、C をそれぞれ 0、 1、 2 とします。0 は常に開始杭、2 は常に終了杭とします。さらに、円盤が積み重ねられる杭の底面を、杭 0、1、 2 に対してそれぞれn +1、n +2、n +3 とします。
移動m後のディスク位置は、mのバイナリ表現から次の規則に従ってマッピングできます。[ 14 ]
例えば、8枚組ディスクの「ハノイの塔」では:
m番目の移動(移動 0 を除く)の始点と終点は、mのバイナリ表現からビット演算を用いて簡潔に求めることができます。C言語の構文を用いると、移動mは次のようになります。
ペグからペグへ。(m & m - 1) % 3((m | m - 1) + 1) % 3
これに対する別の表現は次のとおりである。
ペグからペグへ。(m - (m & -m)) % 3(m + (m & -m)) % 3
これは、 nが奇数のパズルに当てはまります。nが偶数のパズルの場合は、ペグ1とペグ2への出力参照を逆にする必要があります。
さらに、特定の移動で移動する単一のディスクは、移動回数 ( m ) を 2 で割った回数 (つまり、 mの右側に連続するゼロビットの数) に 1 を加えた数によって決定されます。上記の例では、移動 216 の場合、右側に 3 つの 0 があるため、ディスク 4 (3 + 1) がペグ 2 からペグ 1 に移動します。
グレイコードの二進数システムは、このパズルを解く別の方法を提供する。グレイシステムでは、数値は0と1の二進数の組み合わせで表現されるが、標準的な位取り記数法とは異なり、グレイコードは各値が前の値と1ビットだけ異なるという前提に基づいて動作する。
特定のハノイの塔の円盤の数に等しいビットサイズのグレイコードで数える場合、ゼロから始めて数え上げていくと、各移動で変化するビットは移動する円盤に対応し、最下位ビットは最小の円盤、最上位ビットは最大の円盤に対応する。
この手法では、どのディスクを移動させるかは特定できますが、どこに移動させるかは特定できません。最小のディスクの場合、常に 2 つの可能性があります。他のディスクの場合、すべてのディスクが同じペグにある場合を除き、常に 1 つの可能性がありますが、その場合は、最小のディスクを移動させるか、目的がすでに達成されているかのどちらかです。幸いなことに、最小のディスクをどこに移動させるかを示すルールがあります。f を開始ペグ、tを目的地ペグ、rを残りの 3 番目のペグとします。ディスクの数が奇数の場合、最小のディスクは、 f → t → r → f → t → rなどの順にペグに沿って循環します。ディスクの数が偶数の場合、これは逆になります。f → r → t → f → r → tなど。[ 15 ]
グレイコード解法におけるビット変化の位置は、各ステップで移動するディスクのサイズを示します。1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1, ... ( OEISのシーケンスA001511 )、[ 16 ]ルーラー関数としても知られるシーケンス、または移動番号内の 2 のべき乗より 1 大きい数。Wolfram言語では、8 ディスクパズルの移動を示します。IntegerExponent[Range[2^8 - 1], 2] + 1
このゲームは無向グラフで表すことができ、ノードはディスクの配置を、エッジは動きを表す。ディスクが1枚の場合、グラフは三角形になる。

2枚の円盤を表すグラフは、3つの三角形をつなげて、より大きな三角形の頂点を形成するものです。
より大きな円盤を表すために、2つ目の文字が追加されています。明らかに、最初は移動させることはできません。
一番上の小さな三角形は、2枚のディスクを使った1手限りの手順を表しています。

最も外側の三角形の頂点にあるノードは、すべてのディスクが同じペグ上にある分布を表します。
h + 1 個の円盤の場合、h 個の円盤のグラフを取り、それぞれの小さな三角形を 2 個の円盤のグラフに置き換えます。
3枚のディスクの場合、グラフは次のようになります。


一番外側の三角形の辺は、塔をある杭から別の杭へ移動させる最短経路を表しています。一番大きな三角形の辺の中央の辺は、一番大きな円盤の移動を表しています。その次に小さい三角形の辺の中央の辺は、その次に小さい円盤の移動を表しています。一番小さな三角形の辺は、一番小さな円盤の移動を表しています。
一般に、 n個のディスクを持つパズルでは、グラフには3 n 個のノードがあります。各ノードは他のノードに 3 つのエッジを持ちますが、3 つの角ノードには 2 つのエッジしかありません。最小のディスクを他の 2 つのペグのいずれかに移動することは常に可能であり、すべてのディスクが 1 つのペグに積み重ねられている場合を除いて、1 つのディスクを 2 つのペグの間に移動することも可能です。角ノードは、すべて のディスクが 1 つのペグに積み重ねられている 3 つのケースを表します。n + 1 個のディスクの図は、 n 個の ディスクの図を 3 つコピーし、それぞれが新しい最大のディスクの特定の位置における小さなディスクのすべての状態と動きを表し、最大のディスクを移動できる 3 つの機会を表す 3 つの新しいエッジで角を結合することによって得られます。結果として得られる図には 3 n +1個のノードがあり、2 つのエッジしかない 3 つの角がまだ残っています。
ディスクが増えるにつれて、ゲームのグラフ表現はフラクタル図形、シェルピンスキー三角形に似てきます。最短の解法を使用した場合、パズルのほとんどの局面に到達することはないのは明らかです。実際、伝説の司祭たちが最長の解法(どの局面も再訪しない)を使用した場合、3 64 − 1 手、つまり 10 23年 以上かかることになります。
3枚の円盤における最長非重複経路は、使用されていない端を消去することで視覚化できる。

ちなみに、この最長の非重複パスは、aからcへのすべての移動を禁止することで得られます。
3枚の円盤に対するハミルトン閉路は次のとおりである。

グラフは明らかに以下のことを示している。
これにより、N h は2、12、1872、6563711232、... となります( OEISの配列A125295 )。
すべての移動が隣接するペグ間で行われる必要がある場合(つまり、ペグ A、B、C が与えられた場合、ペグ A と C の間を直接移動することはできない)、n 枚のディスクのスタックをペグ A からペグ C に移動するには 3 n − 1 回の移動が必要です。このソリューションは、3 n 個の有効な位置すべてを使用し、常に前の移動を取り消さない唯一の移動を選択します。すべてのディスクがペグ B にある位置は、中間地点、つまり (3 n − 1) / 2 回の移動後に到達します。[ 17 ] [ 18 ]
サイクリックハノイでは、3つのペグ(A、B、C)が与えられ、時計回りと反時計回りの方向がそれぞれA – B – C – Aと定義される円形に配置されます。ディスクの移動方向は時計回りでなければなりません。[ 19 ]移動するディスクのシーケンスを表すだけで十分です。解は、相互に再帰的な2つの手順を使用して見つけることができます。
n個のディスクを反時計回りに隣接するターゲットペグまで移動させるには:
n個のディスクを時計回りに隣接するターゲットペグに移動するには:
C(n)とA(n)をn枚の円盤を時計回りと反時計回りに動かすものとすると、以下の2つの式を記述できます。
巡回ハノイ問題の解には、いくつかの興味深い特性がある。
3本の杭を使ったハノイの塔の問題には、古くから知られている単純な再帰解法があるが、4本の杭を使ったハノイの塔の問題(レーヴのパズルと呼ばれる)の最適な解法は、2014年にBouschによって検証されるまで確認されていなかった。[ 20 ]
しかし、4本以上のペグの場合、フレーム・スチュワートアルゴリズムは1941年から最適性の証明なしに知られている。[ 21 ]
Frame–Stewartアルゴリズム(およびその他の同等の方法)を適用して問題を解決するために必要な最小移動回数の正式な導出については、次の論文を参照してください。[ 22 ]
4本の杭を使ったハノイの塔問題のその他のバリエーションについては、ポール・ストックマイヤーの概説論文を参照してください。[ 23 ]
いわゆるブカレストの塔とクラーゲンフルトの塔のゲーム構成は、3進数と5進数のグレイコードを生成する。[ 24 ]
フレーム・スチュワートアルゴリズムについて以下に説明します。
このアルゴリズムは再帰的に記述できる。
プロセス全体には動きます。したがって、カウントこの量が最小となるものを選ぶべきである。4本の杭の場合、最適な等しい、 どこは最も近い整数関数です。[ 25 ]例えば、Haskell に関する UPenn CIS 194 コースの最初の課題ページ[ 26 ]には、15 枚のディスクと 4 つのペグの場合の最適な解が 129 ステップと記載されており、これは上記のkの値で得られます。
このアルゴリズムはペグの数に関係なく最適であると想定されています。移動回数は 2 Θ ( n 1/( r −2) )です( rは固定されています)。
パズルの本来の目的を興味深く一般化したものは、すべてのディスクが必ずしも同じペグ上にあるとは限らない、与えられたディスクの配置から始めて、最小限の移動回数で別の与えられた配置に到達することです。一般に、この問題を解決するための最短の移動シーケンスを計算するのは非常に難しい場合があります。アンドレアス・ヒンツによって提案された解決策は、最短の移動シーケンスでは、移動する必要のある最大のディスク(明らかに、初期配置と最終配置の両方で同じペグを占める最大のディスクはすべて無視できます)がちょうど1回またはちょうど2回移動するという観察に基づいています。[ 27 ]
この一般化された問題に関連する数学は、ランダムに選択された 2 つの初期ディスク構成と最終ディスク構成間の最短移動シーケンスにおける平均移動数を考慮すると、さらに興味深いものになります。Hinz と Chan Tat-Hung は独立して[ 28 ] [ 29 ] ( [ 30 ] :第 1 章、p. 14も参照)、n ディスクタワーにおける平均移動数が次の正確な式で与えられることを発見しました。
nが十分に大きい場合、第1項と第2項のみがゼロに収束しないため、漸近式が得られます。、 としてしたがって、直感的に、この割合を解釈することができます。これは、ランダムに選択された構成から別のランダムに選択された構成へ移動する際に実行しなければならない作業の比率を、長さの「最も困難な」経路を横断しなければならない難易度と比較したものである。これは、すべてのディスクを1つのペグから別のペグに移動させることを伴う。定数466/885の出現に関する別の説明と、最短経路を計算するための新しくやや改良されたアルゴリズムは、Romikによって提示された。[ 31 ]
ハノイの磁気タワーでは、各ディスクには北極と南極(通常は「赤」と「青」で色分けされている)という2つの異なる面があります。ディスクは同じ極同士を合わせて置いてはいけません。各ディスクに内蔵された磁石が、このような不正な配置を防いでいます。また、ディスクは移動する際に必ず裏返さなければなりません。

有名なハノイ塔パズルのこのバリエーションは、1988 年 7 月に開催された2ème Championnat de France des Jeux Mathématiques et Logiquesで 3 年生から 6 年生に提供されました。 [ 32 ]

パズルのルールは基本的に同じで、ディスクはペグ間で1枚ずつ移動されます。大きいディスクを小さいディスクの上に置くことはできません。違いは、各サイズごとに2枚のディスク(黒と白)があることです。また、交互に色が変わるディスクのタワーが2つあります。パズルの目的は、タワーを単色(同じ色)にすることです。タワーの一番下にある最大のディスクは、位置を交換するものと想定されています。
このパズルのバリエーションは、9枚のトランプを使ったソリティアゲームとして「ハノイの塔」という名前で採用されている。[ 33 ] [ 34 ]元の名前の綴りが変更されたのは意図的なものか偶然のものかは不明である。[ 35 ]

ハノイの塔は、問題解決に関する心理学的研究で頻繁に使用されています。また、実行機能障害の神経心理学的診断と治療のためのロンドンの塔と呼ばれるこの課題の変種も存在します。[ 37 ]
ZhangとNorman [ 38 ]は、タスク設計における表現効果の影響を研究するために、ゲームの同型(等価)表現をいくつか使用しました。彼らは、ゲームコンポーネントの物理的な設計のバリエーションを使用して、ゲームのルールの表現方法を変更することで、ユーザーのパフォーマンスに影響があることを示しました。この知識は、人間とコンピュータのインタラクションの表現のためのTURFフレームワーク[ 39 ]の開発に影響を与えました。
ハノイの塔は、複数のテープ/メディアが関係するコンピュータデータのバックアップを実行する際のバックアップローテーション方式としても使用されます。 [ 40 ]
ハノイの塔は、前頭葉の機能障害を評価しようとする神経心理学者によってテストとしても使用されています。[ 41 ]
2010年、研究者らはアリの一種Linepithema humileが非線形力学とフェロモン信号によってハノイの塔の3枚の円盤バージョンをうまく解決できることを発見した実験結果を発表した。 [ 42 ]
2014年、科学者たちはハノイの塔のような構造を持つ多層パラジウムナノシートを合成した。 [ 36 ]
2025年、Apple Inc.の研究者はハノイの塔などのパズルを使ってLLM生成AIプログラムの推論能力をテストしました。研究者らは、 ChatGPT、Claude、Deepseekなどの主要なAIモデルが、7リングのハノイの塔の解決に苦戦し、正答率が80%未満で、8リングのハノイの塔の解決には全く失敗していることを発見しました。研究者らがAIモデルに解決アルゴリズムを与えた場合でも、やはり失敗しました。このパフォーマンスに基づいて、研究者らは、AIシステムは複雑さが増すと崩壊し、トレーニングデータの分布を超えるタスクを処理できないことを示しており、これらのモデルがAGIのレベルにまで進歩できるかどうかも疑問視していると結論付けました。[ 43 ] [ 44 ]
エリック・フランク・ラッセルのSF小説「Now Inhale」では、ある人間が、処刑前に勝敗が決まるまでゲームをさせられるという現地の習慣がある惑星に囚われている。主人公は救助船が到着するまでに1年以上かかるかもしれないことを知っているので、64枚のディスクを使ってハノイの塔をプレイすることにする。この物語は、仏教僧が世界の終わりまでこのゲームをプレイするという伝説に言及している。[ 45 ] [ 46 ] [ 47 ]
1966年のドクター・フーのエピソード「天界のおもちゃ職人」では、同名の悪役がドクターに、積み重ねるとピラミッド型になる10個のピースと1,023手からなるハノイの塔ゲーム「トリロジック・ゲーム」を強制的にプレイさせる。[ 46 ] [ 48 ]
2007年、 『レイトン教授と悪魔の箱』のパズル6、83、84では、ハノイの塔問題の概念が用いられたが、円盤はパンケーキに変更されていた。このパズルは、レストランのシェフがパンケーキの山をある皿から別の皿に移さなければならないというジレンマに基づいており、元のパズルの基本原則(パンケーキを移せる皿が3枚あること、大きなパンケーキを小さなパンケーキの上に置くことはできないことなど)はそのまま適用されていた。
2011年の映画『猿の惑星:創世記』では、このパズルは映画の中で「ルーカスタワー」と呼ばれ、猿の知能を研究するためのテストとして使用されています。[ 46 ]
このパズルはアドベンチャーゲームやパズルゲームでよく登場します。実装が簡単で、認識しやすいので、大規模なグラフィックゲームのパズルとして最適です(例:スター・ウォーズ:ナイツ・オブ・ジ・オールド・リパブリック、マスエフェクト)。[ 49 ]ストレートディスクを使用する実装もありますが、他の形式でパズルを偽装しているものもあります。セガによるアーケード版もあります。[ 50 ]
このパズルは15枚のディスクで構成されており、ゲーム『Sunless Sea』では墓の鍵として登場します。プレイヤーはパズルの各ステップをクリックして解くことができますが、ゲーム内では完了までに32,767ステップかかると表示されます。特に熱心なプレイヤーがパズルの最後までクリックしても、パズルを完了しても扉は開かないことが明らかになります。
これは2002年にタイ版サバイバーで初めてチャレンジとして使われたが、リングではなく、ピースは寺院を模して作られていた。シーアンはパズルの解き方をよく知っていたにもかかわらず、スーク・ジャイはジェドを脱落させるためにチャレンジを放棄した。この問題は、2011年のアメリカ版サバイバーTVシリーズのエピソードで報酬チャレンジの一部として取り上げられた。両方のプレイヤー(オジー・ラスとベンジャミン「コーチ」ウェイド)はパズルの解き方を理解するのに苦労し、部族の仲間の助けを受けた。
2025年には、このパズルは「ラブアイランドゲームズ」シーズン2のフィナーレにおけるメガデュエルの冒頭にも登場する。