1.问题的解法是递归的
- 还有一类问题,虽然问题本身没有明显的递归结构,但用递归求解比迭代求解更简单,如 Hanoi塔问题、八皇后问题、迷宫问题等。
2.n阶Hanoi问题
- 问题描述
- 假设有3个分别命名为A、B和C的塔座,在塔座A上插有n个直径大小各不相同,依小到大编号为1,2,…,n的圆盘(如图所示)现要求将塔座A上的n个圆盘移至塔座C上,并仍按同样顺序叠排,圆盘移动时必须遵循下列规则:
- (1)每次只能移动一个圆盘;
- (2)圆盘可以插在A、B和C中的任一塔座上;
- (3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。
- 问题分析
- 如何实现移动圆盘的操作呢?可以用分治求解的递归方法来解决这个问题。设A柱上最初的盘子总数为n,则当n=1时,只要将编号为1的圆盘从塔座A直接移至塔座C上即可;否则,执行以下
- (1)用C柱做过渡,将A柱上的(n1)个盘子移到B柱上
- (2)将A柱上最后一个盘子直接移到C柱上
- (3)用A柱做过渡,将B柱上的(n-1)个盘子移到C柱上
- 根据这种解法,如何将n-1个圆盘从一个塔座移至另一个塔座的问题是一个和原问题具有相同特征属性的问题