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

22
计计计计计计计计计计计计计计 计计计计计计 计计计计计计 计计 1

description

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

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

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

1

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

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

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

2

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

1. 什么是递归问题

2. 三个必要条件

3. 实例:汉诺塔问题

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

3

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

1. 什么是递归问题

直接递归 间接递归

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

4

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

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

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

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

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

5

3. 实例:汉诺塔问题

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

61 2 3

…64

初始状态

3. 实例:汉诺塔问题

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

7

终止状态

1 2 3

…64

3. 实例:汉诺塔问题

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

8

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

1 2 3

…64

3. 实例:汉诺塔问题

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

9

• 如何移动 64 个盘子?

1 2 3

…64

3. 实例:汉诺塔问题

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

101 2 3

64…

63

• 如何移动 64 个盘子?

3. 实例:汉诺塔问题

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

111 2 3

… 63

• 如何移动?

3. 实例:汉诺塔问题

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

121 2 3

… 63

• 如何移动?

3. 实例:汉诺塔问题

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

131 2 3

• 如何移动?

…63

3. 实例:汉诺塔问题

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

141 2 3

• 如何移动?

…63 62

3. 实例:汉诺塔问题

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

15

• 如何移动?

1 2 3

3

3. 实例:汉诺塔问题

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

161 2 3

• 如何移动?

3. 实例:汉诺塔问题

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

171 2 3

• 如何移动?

3. 实例:汉诺塔问题

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

181 2 3

• 如何移动?

3. 实例:汉诺塔问题

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

191 2 3

• 如何移动?

3. 实例:汉诺塔问题

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

20

1 2 3

…64

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

3. 实例:汉诺塔问题

1 2 33

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

21

1 2 3

…64

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

3. 实例:汉诺塔问题

1 2 33

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

22

1 2 3

…64

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

3. 实例:汉诺塔问题

1 2 33