计算机解决 递归 问题的必要条件

Post on 23-Jan-2016

229 views 0 download

description

计算机解决 递归 问题的必要条件. 成都师范学院 计算机科学系 匡胤. 计算机解决递归问题 的必要条件. 什么是递归问题 三个必要条件 实例:汉诺塔问题. 1. 什么 是递归问题. 递归 (Recursion) :一个过程或函数在其定义或说明 中直 接或间接调用自身的一种 方法 。. 间接 递归. 直接递归. 2. 三个必要条件. 初始问题能转化为一个新的问题,这两个问题的解决方法是类似的; 经过转化后问题变得更加简单,因而更 加 容易解决; 转化有终止条件,即在一定条件下,新问题可以直接解决;. 3. 实例:汉 诺塔问题. - PowerPoint PPT Presentation

Transcript of 计算机解决 递归 问题的必要条件

1

计算机解决递归问题的必要条件

成都师范学院 计算机科学系 匡胤

2

计算机解决递归问题的必要条件

1. 什么是递归问题

2. 三个必要条件

3. 实例:汉诺塔问题

3

递归 (Recursion) :一个过程或函数在其定义或说明中直接或间接调用自身的一种方法。

1. 什么是递归问题

直接递归 间接递归

4

2. 三个必要条件1) 初始问题能转化为一个新的问题,这两个

问题的解决方法是类似的;

2) 经过转化后问题变得更加简单,因而更加容易解决;

3) 转化有终止条件,即在一定条件下,新问题可以直接解决;

5

3. 实例:汉诺塔问题

61 2 3

…64

初始状态

3. 实例:汉诺塔问题

7

终止状态

1 2 3

…64

3. 实例:汉诺塔问题

8

移动规则• 每时刻只能移动一个盘子• 小盘子可以放在大盘子上,反之不行

1 2 3

…64

3. 实例:汉诺塔问题

9

• 如何移动 64 个盘子?

1 2 3

…64

3. 实例:汉诺塔问题

101 2 3

64…

63

• 如何移动 64 个盘子?

3. 实例:汉诺塔问题

111 2 3

… 63

• 如何移动?

3. 实例:汉诺塔问题

121 2 3

… 63

• 如何移动?

3. 实例:汉诺塔问题

131 2 3

• 如何移动?

…63

3. 实例:汉诺塔问题

141 2 3

• 如何移动?

…63 62

3. 实例:汉诺塔问题

15

• 如何移动?

1 2 3

3

3. 实例:汉诺塔问题

161 2 3

• 如何移动?

3. 实例:汉诺塔问题

171 2 3

• 如何移动?

3. 实例:汉诺塔问题

181 2 3

• 如何移动?

3. 实例:汉诺塔问题

191 2 3

• 如何移动?

3. 实例:汉诺塔问题

20

1 2 3

…64

1) 初始问题能转化为一个新的问题,这两个问题的解决方法是类似的;

3. 实例:汉诺塔问题

1 2 33

21

1 2 3

…64

2) 经过转化后问题变得更加简单,因而更容易解决;

3. 实例:汉诺塔问题

1 2 33

22

1 2 3

…64

3) 转化有终止条件,即在一定条件下,新问题可以直接解决;

3. 实例:汉诺塔问题

1 2 33