信息学奥林匹克竞赛辅导-归纳策略.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息学奥林匹克竞赛辅导-归纳策略

归纳法要比搜索的方法(例如以后将讲解的枚举法、回溯法等)更能反映问题的本质。但是并不是所有实际问题都可以总结归纳出一般规律,即便是可以,归纳也不是一件容易的事情,尤其要归纳出一个数学模型更为困难。而且归纳过程通常没有一定的规则可供遵循。从本质上讲,归纳就是通过观察一些简单而特殊的情况,最后总结出有用的结论或解决问题的有效途径。 通常,归纳的过程分四个步骤: (1) 细心的观察 (2) 丰富的联想 (3) 继续尝试 (4) 总结归纳出结论 归纳是一种抽象,即从特殊现象中找出一般关系。但在归纳过程中不可能列举所有情况,因而最后得出的结论还只是一种猜测(即归纳假设)。通过精心观察而提出的归纳假设得不到证实或最后证明是错的,也是常有的事。因此要尽可能对归纳假设加以严格的证明,证明的方法通常使用数学归纳法。即便找不到证明方法,也必须尽可能多地提出那些容易出错和疏漏的边界情况加以验证,使归纳出的结论和解决问题的途径经得起各种测试数据的检验。 问题经过分析归纳后,一般产生四种结果: (1) 递推式 (2) 递归式 (3) 制定目标 (4) 贪心方案 当然,经过分析直接概括出高度抽象的数学公式亦是一种归纳过程、一种解题的途径。但是怎样进行这种归纳,这个问题太宽泛,与其说它是计算机算法的策略,还不如说它是一种数学知识和数学能力,取决于解题者本身的数学功底。我们已经在“对应策略”一节中,对如何将试题与数学公式对应的问题作了一些讨论,这里不再赘述。 一、递推法 瞬息变幻的世界,每一件事物都在随时间的流逝发生着微妙的变化。而在这纷繁的变幻中,许多现象的变化是有规律的,这种规律往往呈现出前因和后果的关系。即某种现象的变化结果与紧靠它前面变化的一个或一些结果紧密关联。所谓“三岁看老”,说的就是这个道理。这一道理也正体现了递推的思想。递推关系几乎在所有的数学分支中都有重要作用,在联赛中更因其简捷高效而显示出独特的魅力。 1.递推关系的定义和求解方法 有一类试题,每相邻两项数之间的变化有一定的规律性,我们可将这种规律归纳成如下简捷的递推关系式: fn=g(fn-1)或者fn-1=g’(fn) 这样就在数的序列中,建立起后项和前项之间的关系。然后从初始条件(或最终结果)入手,一步步地按递推关系式递推,直至求出最终结果(或初始值)。很多程序就是按这样的方法逐步求解的。如果对一个试题,我们要是能找到后一项数与前一项数的关系并清楚其起始条件(或最终结果),问题就比较容易解决,让计算机一步步计算就是了。让高速的计算机从事这种重复运算,可真正起到“物尽其用”的效果。 递推分倒推法和顺推法两种形式:    顺推法就是由边界条件出发,通过递推关系式推出后项值,再由后项值按递推关系式推出再后项值,依次递推,直到从问题初始陈述向前推进到这个问题的解为止。 倒推法就是在不知初始值的情况下,经推理而获知问题的最终解或目标,再倒过来,推知它的初始条件。因为这种问题的运算过程是一一映射的,故可分析其倒推公式。然后再从最终解或目标出发,采用倒推手段,一步步地倒推到这个问题的初始陈述。 一般分析思路: 由此可见,递推算法的时间复杂度一般为W(n)。我们之所以将递推法划入归纳策略,是因为初始条件(或最终结果)除试题己明确给定外,都是通过对问题的整理与化简而确定的,其递推式也是对实际问题的分析与归纳而得到的,因此递推本质上属于归纳。 2.递推关系的建立 递推关系中存在着三大基本问题: 如何建立递推关系, 已给出的递推关系有何性质, 以及如何求解递推关系。 其中核心问题是如何建立递推关系。    建立递推关系的关键在于寻找第n项与前面(或后面)几项的关系式,以及初始项的值(或最终结果值)。它不是一种抽象的概念,而是针对某一具体题目或一类题目而言的。    下面,我们对五种典型的递推关系的建立作比较深入具体的讨论。递推程序一般是将递推公式“直译”成一重循环,模式性很强。 ( 1 ) Fibonacci 数列 Fibonacci数列的代表问题是由意大利著名数学家 Fibonacci于1202年提出的“兔子繁殖问题”(又称“Fibonacci问题”):    有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子? 分析:设满X月共有兔子Fx对,其中当月新生的兔子数目为Nx对。第x-1个月留下的兔子数设为Ox 对。则: Fx=Nx+Ox 而Ox=Fx-1 Nx=Ox-1=Fx-2(即第x-2个月的所有兔子到第x个月都有繁殖能力了)

文档评论(0)

sandaolingcrh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档