RobetSedwick による C++ の本でアルゴリズムを読んでいます。ここで筆者はハノイの塔について、分割統治法と再帰性を用いて説明しています。
次のコードは、問題に対する再帰的な解決策です。各ステップでどのディスクをシフトするか、どの方向に移動するかを指定します (+ はペグを 1 つ右に移動し、一番右のペグにある場合は一番左のペグに循環することを意味し、- はペグを 1 つ左に移動し、ペグを左に循環することを意味します)。一番左のペグの場合は一番右のペグ)。
Disk3
Disk2
Disk1
Peg1 Peg2 Peg3
私の質問は、ディスクが左のペグ (つまり、ペグ 1) にある場合、「左端のペグへのサイクリング」の上で著者が何を意味するかです。
著者はまた、再帰は次のアイデアに基づいていると述べました。ディスクをもう 1 つ左に (ディスク N に) ペグします。
上記の左右の用語で混乱しています。誰でも説明してください。
void hanoi(int N, int d)
{
if (N == 0) return;
hanoi(N-1, -d);
shift(N, d);
hanoi(N-1, -d);
}