ハノイの塔 (ハノイの塔としても知られています) は、インドの古代伝説に由来する知育玩具です。ブラフマーが世界を創造したとき、1本の柱の上に64枚の金の円盤を下から上に大きさ順に積み重ねた3本のダイヤモンドの柱を作りました。ブラフマーはバラモンに、別の柱の上にある円盤を下から大きい順に並べ替えるよう命じました。そして、小さな円盤では円盤を拡大することはできず、3本の柱の間で一度に移動できる円盤は1枚だけであると規定されています。
その後、この伝説はハノイの塔ゲームに発展し、ゲームプレイは次のとおりです:
1 3 つのポール A、B、C があります。ポール A には複数の皿があります
2. 一度に 1 つの皿を移動し、小さい皿は大きい皿の上にのみ積み重ねることができます
3. すべての皿をポール A からポール C に移動します
次のとおりです。例は、ハノイの塔のアルゴリズムの実装を示しています。
/* author by w3cschool.cc MainClass.java */ public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1){ System.out.println("Disk 1 from " + from + " to " + to); }else { doTowers(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); doTowers(topN - 1, inter, from, to); } } }
上記のコードを実行した出力結果は次のとおりです。
Disk 1 from A to C Disk 2 from A to B Disk 1 from C to B Disk 3 from A to C Disk 1 from B to A Disk 2 from B to C Disk 1 from A to C
上記は、Java の例の内容です - ハノイの塔アルゴリズムの詳細については、 PHP 中国語 Web サイト (www.php.cn) にご注意ください。