Javaの例 - ハノイアルゴリズムの塔
(また、ハノイの塔として知られている)ハノイの塔問題は、教育玩具の古代インドの伝説に由来します。 梵天は64金のディスクでサイズパイルの順に3ダイヤモンドの柱、ボトムアップからポールを行うために、世界を作成した時間。 他の柱上に再配置サイズの順に下からディスクへの大梵天ブラフマンコマンド。 そして、ディスクが小さいディスクをズームインすることができない、あなただけの3本の柱の間に1ディスクを移動することができます提供しています。
その後、これは次のように再生し、ハノイゲームの伝説の塔へと進化しました:
- 1. 3極A、B、Cがあります。 ロッドは料理の数を持っています
- 2.それぞれが、ビッグトップで唯一の小さなスタックをプレートを移動させます
- 3. Aからのすべての料理は、レバー全てのCポールを移動します
次の例では、HANORアルゴリズムを示しています。
/* 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