汉诺塔递归算法是什么?
1个回答
展开全部
汉诺塔问题实际上就是要将柱子A上由小到大排列的圆环按照相同的大小顺序移动到柱子C,之间的过程可以使用柱子B。
其递归的归纳思想是这样的:
(1)首先,当只有一个盘子的时候只需要将A上的1号盘子移动到C上就行了
(2)当有2个盘子在A上的时候,需要将A上的1号盘子(由上往下数)移动到B上,再将A上的2号盘子移动到C上,之后将B上的1号盘子移动到C上
(3)当有3个盘子在A上的时候,需要将A上的1号和2号盘子移动到B上(需要借助C),之后将A上的3号盘子移动到C上,再将B上的盘子移动到C上(需要借助A)
(...)以此类推
(N)当有N个盘子在A上的时候,需要将A上的N-1个盘子移动到B上(需要借助C),之后将A上的第N个盘子移动到C上,再将B上的盘子移动到C上(需要借助A)
起源
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询