0
这是 Tower of Hanoi: Recursive Algorithm汉诺塔:递归算法使用神秘的硬编码常量6
的后续问题,其中该算法的基本原理是很好的解释。
但是我有一个稍微不同的实现这个算法在这里,我不完全理解(代码是从一所大学演讲,所以我不能链接到任何来源):
// k = nr. of discs, a = start peg, b = destination peg
public static void hanoi(int k, int a, int b)
{
if(k > 0)
{
hanoi(k - 1, a, 6 - a - b); // 1. move (k-1) discs to temporary peg
System.out.println("" + k + ": " + a + " => " + b); // 2. move k. disc from a to b
hanoi(k - 1, 6 - a - b, b); // 3. move (k-1) discs from temporary peg to peg b
}
}
原则与其他主题相同(据我了解),但我不明白'6-a -b“中的'6'是从哪里来的,有人可以解释吗?