《第三章 算法的程序实现——3.5 用递归法解决问题课件》高中信息技术教科版选修1 算法与程序设计1158.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

想一想
2.public sub f(byval n as long ) Dim a as long a=a+n print n end sub
3.Public Function f(byval a as integer)as integer dim b as integer f=f(a,b) end fuction
试一试 经典数学问题
1)1+2+3+……N 2)N!
知识回顾
1、递归分为 ( ) 与( ) 两个过程。
2、下面哪个问题可以用递归法解决?
(1)钻石图案
(2)百鸡百钱
(3)加密程序
(4)汉诺塔
3、只要调用函数都是递归法?
4、递归法必需要有结束条件?
现实生活 → 一层梦境 → 二层梦境 → 三层梦境 → 四层梦境 现实生活 ← 一层梦境 ← 二层梦境 ← 三层梦境 ← 四层梦境
从前有座山,山里有个庙,庙里
有个老和尚讲故事,讲什么呢? 从前有座山,山里有个庙……
从前有座山
你的眼睛 他的眼睛
如果一个函数在定义时,直接
或间接地调用了自己,这种算 法在程序设计中统称为递归法。
函数A
函数A 函数B
和尚移盘
一个庙里有三个柱子(A,B,C),第一 个柱子( A )有7个盘子,从上往下盘子越来越 大。要求庙里的老和尚把这7个盘子全部移动到 第三个柱子( C)上。
递归算法有什么特点?
1、递归法:函数直接或间接地调用了自己
2、递归分为递推(问题下推)与回归(结 果回归)两个过程
3、递归必需要有结束条件 4、递归函数的调用方式相当耗费计算机资源, 因而其效率比较低
想一想
1.Public Function story( byval n as integer ) as integer If n==0 then end else story=story(n-1) end if end Function
……
第一个和尚移盘
Pan(7)=2+pan(6)*3=2186
Pan(7)=2+pan(6)*3 Pan(6)=2+pan(5)*3 Pan(5)=2+pan(4)*3 Pan(4)=2+pan(3)*3 Pan(3)=2+pan(2)*3 Pan(2)=2+pan(1)*3 Pan(1)=2
递归算法的实现方式:函数的调用
和尚移盘算法的实现方式:自定义函数的调用
和尚移盘算法的自定义函数:pan(n)
和尚移盘算法的实现:
Pan(1)
Pan(n)=2+pan(n-1)*3
盘子
个数
1 23 4
5
6
7
8
9
盘子 移动数 2 8 26 80 242 728 2186 6560 19682
练一练
桌面:\考
讨论本章学习的五种算法,从程序的执 行效率、代码编写的方便性、可读性等方面, 分析它们各自的特点,指出其适用范围。
Pan(6)=2+pan(5)*3
…… 一直找下去,直到找到第六个 和尚为止
pan(2)=2+pan(1)*3
第七个和尚移盘 把第一个盘子先移动到第二个柱子上,然 后再移动到第三个柱子上。
Pan(1)=2
第六个和尚移盘 Pan(2)=2+pan(1)*3=8
第五个和尚移盘 Pan(3)=2+pan(2)*3=26
规则:1、一次只能移动一个盘子 2、移动的时候始终只能小盘子压着大盘子 3、A柱和C柱不能相互直接移动。
第一个和尚想法 要是有一个人能把前6个盘子移动好,我移 动最后一个盘子,我的任务就能完成了。
Pan(7)=2+pan(6)*3
第二个和尚想法 要是有一个人能把前5个盘子先移动好,我 移动最后一个盘子,我的任务也能完成了。
相关文档
最新文档