

ハノイの塔(ベナレス神殿の問題 [ 1 ] 、ブラフマーの塔、ルーカスの塔 [ 2 ] とも呼ばれ、複数形では タワー、または単にピラミッドパズル[ 3 ] と呼ばれることもある)は、3本の棒と、任意の棒にスライドできる様々な直径の円盤からなる数学ゲームまたはパズルである。パズルは、円盤を1本の棒の上にサイズの降順で積み重ね、一番小さい円盤を一番上にして円錐形に近づけることから始まる。パズルの目的は、以下のルールに従って、積み重ねた円盤全体を他の棒の1つに移動させることである。[ 4 ]
ディスクが3枚の場合、このパズルは7手で解けます。ハノイの塔パズルを解くのに必要な最小手数は2 n − 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枚のディスクでハノイの塔パズルを解くのに必要な最小移動回数は2 n − 1です。[ 12 ]

おもちゃのパズルの簡単な解決法は、最小のピースと最小ではないピースを交互に動かすことです。最小のピースを動かすときは、常に同じ方向(開始時のピースの数が偶数の場合は右、開始時のピースの数が奇数の場合は左)の次の位置に移動します。選択した方向にタワーの位置がない場合は、ピースを反対側の端に移動しますが、その後は正しい方向に動き続けます。たとえば、開始時にピースが3つあった場合、最小のピースを反対側の端に移動し、その後は左方向に動き続けます。最小ではないピースを動かす番になったとき、有効な動きは1つだけです。これを行うと、最小限の動きでパズルを完成させることができます。[ 13 ]
反復的な解決法は、目標が達成されるまで、次の一連の手順を繰り返し実行することと同じです。
このアプローチに従うと、ディスクの数が奇数の場合はスタックはペグ B に配置され、偶数の場合はペグ C に配置されます。

問題を再帰的に解く鍵は、問題がより小さな部分問題の集合に分解できることを認識することです。それぞれの部分問題には、私たちが求めているのと同じ一般的な解法が適用されます。そして、それらの部分問題の解から、ある単純な方法で全体の解が求められます。このようにして生成された部分問題がそれぞれ「小さい」ということは、最終的に基本ケースに到達することを保証します。ハノイの塔の場合:
n 個のディスクすべてがペグ間で有効な配置で分散されていると仮定します。ソースペグにm 個のトップ ディスクがあり、残りのディスクはすべてmより大きいため無視しても問題ないと仮定します。スペアペグを使用して、ルールに違反することなく、 m 個のディスクをソース ペグからターゲットペグに移動します。
完全なハノイの塔のソリューションでは、 B をスペア ペグとして使用して、 n 個のディスクをソース ペグ A からターゲット ペグ C に移動します。
このアプローチは数学的帰納法によって厳密な数学的証明を与えることができ、プログラミングを教える際に再帰の例としてよく使用されます。
多くの数学パズルと同様に、もう少し一般的な問題を解くことで解を見つけるのが容易になります。つまり、 h (高さ) のディスクのタワーを開始のペグf = A (開始) から終了のペグt = C (終了) に移動する方法です。ここで、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の2進数表現から直接決定できます。例えば、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の2進表現から次の規則でマッピングできる。 [ 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の右側の連続する 0 ビットの数) で割った回数に 1 を加算することで決まります。上記の移動 216 の例では、右側に 3 つの 0 があり、ディスク 4 (3 + 1) がペグ 2 からペグ 1 に移動されます。
グレイコードの二進法は、このパズルを解く別の方法を提供します。グレイコードでは、数値は0と1の二進法の組み合わせで表現されますが、標準的な位置表記法とは異なり、グレイコードは各値が前の値から1ビットだけ異なるという前提で動作します。
特定のハノイの塔のディスクの数に等しいビット サイズのグレイ コードでカウントする場合、ゼロから始まってカウントアップし、各移動で変更されるビットは移動するディスクに対応します。最下位ビットは最小のディスクであり、最上位ビットは最大のディスクです。
この手法では、どのディスクを移動するかは特定しますが、どこに移動するかは特定しません。最小のディスクの場合、常に 2 つの可能性があります。他のディスクの場合、すべてのディスクが同じペグ上にある場合を除き、常に 1 つの可能性があります。ただし、その場合は、移動する必要があるのは最小のディスクであるか、目的がすでに達成されているかのどちらかです。幸いなことに、最小のディスクをどこに移動するかを指定するルールがあります。開始ペグをf 、目的のペグをt、残りの 3 番目のペグを r とします。ディスクの数が奇数の場合、最小のディスクはペグに沿って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 つのコピー(それぞれが新しい最大ディスクの特定の 1 つの位置に対する小さいディスクのすべての状態と動きを表します) を作成し、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、A – C – B – Aと定義されます。円盤の移動方向は時計回りでなければなりません。[ 19 ]移動させる円盤の順序を表せば十分です。解は、2つの相互再帰的な手順を用いて求められます。
n 個のディスクを反時計回りに隣接するターゲット ペグまで 移動するには:
n 個のディスクを時計回りに隣接するターゲット ペグまで 移動するには:
C(n)とA(n)がn個のディスクを時計回りと反時計回りに動かすことを表すとすると、両方の式は次のようになります。
| C(n) = A(n−1) n A(n−1) | そして | A(n) = A(n−1) n C(n−1) n A(n−1) です。 | |
| したがって | C(1) = 1 | そして | A(1) = 1 1, |
| C(2) = 1 1 2 1 1 | そして | A(2) = 1 1 2 1 2 1 1. |
循環ハノイの解には、いくつかの興味深い特性があります。
3本のペグを使ったバージョンには単純な再帰的な解法があることは古くから知られていましたが、4本のペグを使ったハノイの塔問題(レーヴのパズルと呼ばれる)の最適解は2014年にBouschによって検証されるまで検証されていませんでした。[ 20 ]
しかし、4つ以上のペグの場合、フレーム・スチュワートアルゴリズムは1941年以来最適性の証明なしに知られています。[ 21 ]
フレーム・スチュワート法(および他の同等の方法)を適用して問題を解くために必要な最小移動数の正確な正式な導出については、次の論文を参照してください。[ 22 ]
4本の釘によるハノイの塔問題のその他のバリエーションについては、ポール・ストックマイヤーの調査論文を参照してください。[ 23 ]
いわゆるブカレストの塔とクラーゲンフルトの塔のゲーム構成は、3進法と5進法のグレイコードを生成します。[ 24 ]
フレーム・スチュワートアルゴリズムについては以下に説明します。
アルゴリズムは再帰的に記述できます。
全体のプロセスには手数がかかる。したがって、この量が最小となるカウント数を選ぶ必要がある。4ペグの場合、最適解はであり、は最も近い整数関数である。[ 25 ]例えば、UPenn CIS 194 Haskellコースの最初の課題ページ[ 26 ]には、 15枚のディスクと4ペグの場合の最適解が129ステップと記載されており、これは上記のkの値で得られる。
このアルゴリズムは、任意の数のペグに対して最適であると推定されます。その移動回数は 2 Θ ( n 1/( r −2) )です ( rは固定)。
このパズルの本来の目的を一般化すると、すべてのディスクが必ずしも同じペグに載っているとは限らない所定のディスク配置から出発し、最小限の移動回数で別の所定の配置に到達するという興味深い結果になる。一般的に、この問題を解くための最短の移動シーケンスを計算するのは非常に困難である。アンドレアス・ヒンツによって提案された解決策は、最短の移動シーケンスにおいて、移動させる必要のある最大のディスク(もちろん、初期配置と最終配置の両方で同じペグを占める最大のディスクはすべて無視できる)が正確に1回または正確に2回移動するという観察に基づいている。[ 27 ]
この一般化された問題に関連する数学は、ランダムに選択された2つの初期および最終ディスク構成間の最短移動シーケンスにおける平均移動回数を考慮すると、さらに興味深いものになります。ヒンツとチャン・タット・フンは独立して[ 28 ] [ 29 ] ( [ 30 ]:第1章、14ページ も参照 )nディスクタワーの平均移動回数が以下の正確な式で与えられることを発見しました。
nが十分に大きい場合、第1項と第2項のみがゼロに収束しないため、漸近式 、としてが得られる。したがって、直感的に、 の割合は、ランダムに選択された構成から別のランダムに選択された構成に移行する際に実行する必要がある労力と、すべてのディスクを1つのペグから別のペグに移動させる「最も困難な」長さの経路を横断する難易度との比率を表すと解釈できる。定数466/885の出現に関する別の説明と、最短経路を計算するための新しくいくらか改良されたアルゴリズムは、ロミックによって与えられた。[ 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年に研究者らは、非線形力学とフェロモン信号を利用して、ハノイの塔問題の3ディスクバージョンを解くことができたという実験結果を発表しました。 [ 42 ]
2014年、科学者たちはハノイの塔のような構造を持つ多層パラジウムナノシートを合成した。 [ 36 ]
2025年、アップル社の研究者らはハノイの塔などのパズルを用いてLLM Generative AIプログラムの推論能力をテストした。研究者らは、 ChatGPT、Claude、Deepseekなどの主要なAIモデルが7リングレベルのハノイの塔を解くのに苦労し、精度が80%未満となり、8リングのハノイの塔を解くことは全くできないことを発見した。研究者らがAIモデルに解法アルゴリズムを与えた場合でも、モデルは失敗した。このパフォーマンスに基づき、研究者らは、複雑性が増すとAIシステムが崩壊し、トレーニングデータの分布を超えるタスクを処理できないことを示していると結論付けた。このことは、これらのモデルがAGIレベルに進化できるかどうかにも疑問を投げかけるものである。[ 43 ] [ 44 ]
エリック・フランク・ラッセルのSF小説『ナウ・インヘイル』では、ある惑星に囚われた人間が登場します。その惑星では、処刑前に勝敗が決まるまでゲームをさせるという慣習があります。主人公は救出船が到着するまで1年以上かかるかもしれないことを承知していたため、64枚のディスクを使った「ハノイの塔」で遊ぶことにしました。この物語は、仏教の僧侶たちが世界の終わりまでゲームを続けたという伝説に言及しています。[ 45 ] [ 46 ] [ 47 ]
1966年のドクター・フーの物語『天空の玩具職人』では、悪役がドクターに10個のピースを使い1,023手で積み上げるピラミッド型のハノイの塔のゲーム「トリロジックゲーム」を強制的にプレイさせる。[ 46 ] [ 48 ]
2007年、 『レイトン教授と悪魔の箱』のパズル6、83、84でハノイの塔問題のコンセプトが採用されましたが、ディスクはパンケーキに変更されていました。このパズルは、レストランのシェフが山盛りのパンケーキを片方の皿からもう片方の皿へと移さなければならないというジレンマを題材としており、元のパズルの基本原則(パンケーキを移動できる3枚の皿、大きいパンケーキを小さいパンケーキの上に乗せることができない、など)はそのままに、難問を解くというものでした。
2011年の映画『猿の惑星 創世記』では、このパズルは作中で「ルーカスタワー」と呼ばれ、類人猿の知能を研究するためのテストとして使用されています。[ 46 ]
このパズルはアドベンチャーゲームやパズルゲームで頻繁に登場します。実装が簡単で認識しやすいため、大規模なグラフィックゲーム(例:スター・ウォーズ:旧共和国の騎士、マスエフェクト)のパズルとして用いるのに適しています。[ 49 ]実装によってはディスクそのものを使用するものもありますが、他の形でパズルを隠しているものもあります。セガのアーケード版もあります。[ 50 ]
ゲーム「Sunless Sea」では、このパズルの15枚組バージョンが墓の鍵として登場します。プレイヤーはパズルの各手をクリックして解くことができますが、ゲームでは完成までに32,767手かかると記載されています。特に熱心なプレイヤーがパズルの最後までクリックすると、パズルを完成させても扉が開かないことが明らかになります。
これは2002年のサバイバー・タイランドで初めてチャレンジとして使われましたが、指輪ではなく寺院を模したピースが使われていました。シーアンがパズルの解き方をよく知っていたにもかかわらず、スーク・ジャイはジェドを追い払うためにチャレンジを放棄しました。この問題は、2011年のアメリカ版サバイバーTVシリーズのエピソードで、報酬チャレンジの一部として取り上げられました。プレイヤーのオジー・ラストとベンジャミン・"コーチ"・ウェイドは二人ともパズルの解き方が分からず苦戦し、仲間の仲間に助けられました。
2025年には、このパズルは『ラブ アイランド ゲーム』シーズン 2 の最終回にあるメガ デュエルの冒頭にも登場します。
| シリーズの一部 |
| パズル |
|---|