-
n 板 a[0] a[n-1]。
在 B 的帮助下从 A 移动到 C
首先,确定 n 的奇偶校验,如果 n%2=1
for i=n-1 to 2 i-=3
if n-2>0
将 A[I-2] 从 A 移动到 C
将 A[i-1] 从 A[i-1] 移动到 B,将 A[i-2] 从 C 移动到 A[i],将 A[i] 从 A[I] 移动到 C
if n-2>0
将 A[I-1] 从 B, AI-1] 移动到 C,将 A[I-2] 从 A, Endif 移至
endfor
否则 n 是偶数,类似。
endif
-
A、B、C三个塔,先将A塔上的N-1板移到C,再将1移到B,再将剩余的N-1移到A
-
hanot (n-1,b,a,c);(说明:在A塔的帮助下,将B塔的(N-1)移动到C塔)。
为了在C的帮助下实现从A到B的n个磁盘
思路如下:首先考虑极限 当只有一个磁盘时,磁盘可以直接来自一个 ->b。
当有 2 个板时,将 A -> C 的 1 个板放入 2 个板,然后放入 2 个板 A->B,然后放入 C - B 的 2 个好板。
当有 n 个磁盘时,借助 B 将 n-1 个磁盘移动到 C,然后将 N 个磁盘从 A 移动到 >B。
此时,只要在A的帮助下将n-1从C移动到B,那么N-2磁盘就可以在B的帮助下移动到A。
递归,即在奔跑的过程中称呼自己。
什么是递归:
1.子问题必须与原始问题相同且更简单;
2.不能无限调用,必须有出口,简化为非递归状态处理。
在数学和计算机科学中,递归是指由一个(或多个)简单基本情况定义的一类对象或方法,并规定所有其他情况都可以简化为它们的基本情况。
以上内容是指:百科全书-递归公式。
-
河内塔递归算法是算法分析。该算法的实现可以简单地分为三个步骤:将 n-1 个板从 A 移动到 B; 将第 n 个板从 A 移动到 C,将 n-1 板从 B 移动到 C。
河内塔**及其应用
传说在古印度的圣殿中,有一种叫做河内塔的游戏。 游戏在一个铜板装置上进行,有三根杆(编号为A、B、C),64个金板从下到上,从大到小依次放置。
游戏的目标:将 A 栏上的所有圆盘移动到 C 栏上,并仍然以相同的顺序堆叠它们。 操作规则:
一次只能移动一块板,在移动过程中,三根杆始终保持在底部,小板在顶部,并且在操作过程中可以将板放在任意一根杆A、B和C上。
河内塔问题就是一个典型的递归方法解决的问题,在实际教学中,在传统教学方法的基础上,可以采用计算机辅助教学对算法教学进行模拟和演示,使学生更容易接受和理解递归算法的思想,不仅可以提高学生的学习兴趣, 同时也取得更好的教学效果。
至于递归,你可以把它想象成一次运行一个句子。 当您需要保存状态时,系统会自动使用堆栈为您保存。 让我们以你说的例子为例: >>>More