回答受付が終了しました

ID非公開

2021/10/14 2:37

22回答

ハノイの塔のプログラムですが、各行が何を意味していて、どのようにアルゴリズムが挙動しているのか説明していただければありがたいです!回答お願いします!!

回答(2件)

0

>ハノイの塔のプログラム 「ハノイの塔 再帰」と検索して出てくるページを20ほど読むのが早いです。再帰でやると、だいたいは同じになるからです。 C言語のものもありますが、Javaと似てるので読むのはそんなに難しくは無いと思われます。

0

ハノイの塔のルールは、わかってる前提とします。 このプログラムは、Aにあるn段の塔をCに移すための手順を出力しています。 ソースに書いてあることは、いったん忘れて手順だけ簡単に説明すると 移したい塔の円盤(A)の上部を、移す先”でない”方(B)に移動させて、 移したい円盤を移す先(C)に移動して、最初に移した(B)の円盤を(C)に移動させるという感じです。 4段の塔を移動させるためには、3段の塔を同様のロジックで移動させ 3段の塔を移動させるためには、2段の塔を同様に・・・ とnを-1したものを再帰的に繰り返すロジックです これをソースコードで表したものが hanoi(x, z, y, n - 1); // 移したい円盤の上部を移動させる(1) System.out.println(x + "to "+ z); // 移したい円盤自身を表示 hanoi(y, x, z, n - 1); // (1)で移動させた上部の円盤を移動させたい場所に移す になっています。