高中信息技术 全国青少年奥林匹克联赛教案 递归与回溯法.pdfVIP

高中信息技术 全国青少年奥林匹克联赛教案 递归与回溯法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
递归与回溯法 课题:递归与回溯 目标: 知识目标:递归概念与利用递归进行回溯 能力目标:回溯算法的应用 重点:回溯算法 难点:回溯算法的理解 板书示意: 1)递归的理解 2) 利用递归回溯解决实际问题(例 14、例 15、例16、例17、例 18) 3) 利用回溯算法解决排列问题(例 19) 授课过程: 什么是递归?先看大家都熟悉的一个民间故事:从前有座山,山上有座庙,庙里有一个 老和尚在给小和尚讲故事,故事里说,从前有座山,山上有座庙,庙里有一个老和尚在给小 和尚讲故事,故事里说……。象这样,一个对象部分地由它自己组成,或者是按它自己定义, 我们称之是递归。 例如,我们可以这样定义 N!,N!=N*(N-1)!,因此求 N!转化为求 (N-1)!。这就是一个 递归的描述。 *n( n1)!  n 0   n!  1 n 0  因此,可以编写如下递归程序: program Factorial; var N: Integer; T: Longint; function Fac(N: Integer): Longint; begin if N = 0 then Fac := 1 else Fac := N * Fac(N - 1) end; begin Write(N = ); Readln(N); T := Fac(N); Writeln(N! = ,T); end. 1 图 13 展示了 N=3 的执行过程。由上述程序可以看出,递归是一个反复执行直到递归终 图 13 递归调用示例图 止的过程。 设一个未知函数 f,用其自身构成的已知函数 g来定义:    g n, f n 1 n 0   f n    a n 0 为了定义 f(n),必须先定义 f(n-1),为了定义 f(n-1),又必须先定义 f(n-2) ,…, 上述这种用自身的简单情况来定义自己的方式称为递归定义。 递归有如下特点: ①它直接或间接的调用了自己。 ②一定要有递归终止的条件,这个条件通常称为边界条件。 与递推一样,每一个递推都有其边界条件。但不同的是,递推是由边界条件出发,通过 递推式求 f(n)的值,从边界到求解的全过程十分清楚;而递归则是从函数自身出发来达到 边界条件,在通过边界条件的递归调用过程中,系统 用堆栈把每次调用的中间结果(局部 变量和返回地址)保存起来,直至求出递归边界值 f(0)=a。然后返回调用函数。返回的过 程中,中间结果相继出栈恢复, f(1)=g(1,a)f(2)=g(2,f(1))…… 直至求出 f(n)=g(n,f(n-1))。 由此可见,递归算法的效率往往很低,费时和费内存空间。但是递归也有其长处, 它能使一个蕴含递归关系且结构复杂的程序简洁精炼,增加可读性。特别是在难于找到 从边界到解的全过程的情况下,如果把问题进一步,其结果仍维持原问题的关系,则采用递  直接递归——递归过程 P 直接自己调用自己; 递归按其调用方式分  间接递归——即 P 包含另

文档评论(0)

nnh91 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档