- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
递推关系的建立及其求解方法王桐林
一、递推式的建立0、Fibonacci数列1、Hanoi塔问题问题Ⅰ:三柱问题问题Ⅱ:四柱问题问题Ⅲ:m柱问题2、平面分割问题问题Ⅰ:封闭曲线分割平面问题Ⅱ:‘Z’分割平面问题Ⅲ:‘M’分割平面3、Catalan数问题一:凸n边形的三角形剖分问题二:二叉树数目问题三:出栈序列4、第二类Stirling数问题一:放置小球问题二:集合划分问题5、其他问题一:集合取数问题问题二:整数划分问题二、递推式的求解方法:1.递归函数2.用数组实现3.求递推式的通项表达式:3.1、迭加法3.2、待定系数法3.3、特征方程法3.4、生成函数法
三、递推的形式logo顺推法和倒推法
Fibonacci数列的代表问题是由意大利著名数学家Fibonacci于1202年提出的“兔子繁殖问题”(又称“Fibonacci问题”)。问题:一个数列的第0项为0,第1项为1,以后每一项都是前两项的和,这个数列就是著名的裴波那契数列,求裴波那契数列的第N项。Fibonacci数列010302
F[0]:=1;F[1]:=2;由问题,可写出递推方程算法:FORi:=2TONDOF[I]:=F[I–1]+F[I–2];解答
从这个问题可以看出,在计算裴波那契数列的每一项目时,都可以由前两项推出。这样,相邻两项之间的变化有一定的规律性,我们可以将这种规律归纳成如下简捷的递推关系式:Fn=g(Fn-1),这就在数的序列中,建立起后项和前项之间的关系。然后从初始条件(或是最终结果)入手,按递推关系式递推,直至求出最终结果(或初始值)。很多问题就是这样逐步求解的。01对一个试题,我们要是能找到后一项与前一项的关系并清楚其起始条件(或最终结果),问题就可以递推了,接下来便是让计算机一步步了。让高速的计算机从事这种重复运算,真正起到“物尽其用”的效果。02总结定一个数的序列H0,H1,…,Hn,…若存在整数n0,使当n=n0时,可以用等号(或大于号、小于号)将Hn与其前面的某些项Hn(0in)联系起来,这样的式子就叫做递推关系。递推关系有何性质如何建立递推关系如何求解递推关系递推概念
1、Hanoi塔问题问题的提出:Hanoi塔由n个大小不同的圆盘和m根木柱1,2,3…….m组成。开始时,这n个圆盘由大到小依次套在1柱上,如图所示。
现在要求把1柱上n个圆盘按下述规则移到m柱上:(1)一次只能移一个圆盘;(2)圆盘只能在m个柱上存放;(3)在移动过程中,不允许大盘压小盘。求将这n个盘子从1柱移动到m柱上所需要移动盘子的最少次数。
设f(n)为n个盘子从1柱移到3柱所需移动的最少盘次。
当n=1时,f(1)=1。当n=2时,f(2)=3。问题Ⅰ:三柱问题
以此类推,当1柱上有n(n2)个盘子时,我们可以利用下列步骤:第一步:先借助3柱把1柱上面的n-1个盘子移动到2柱上,所需的移
动次数为f(n-1)。第二步:然后再把1柱最下面的一个盘子移动到3柱上,只需要1次
盘子。第三步:再借助1柱把2柱上的n-1个盘子移动到3上,所需的移动次
数为f(n-1)。由以上3步得出总共移动盘子的次数为:f(n-1)+1+f(n-1)。所以:f(n)=2f(n-1)+1f(n)=2n-1
问题Ⅱ:四柱问题
【问题分析】:令f[i]表示四个柱子时,把i个盘子从原柱移动到目标柱所需的最少移动次数。j第一步:先把1柱上的前j个盘子移动到另外其中一个非目标柱(2或3柱均可,假设移到2柱)上,此时3和4柱可以作为中间柱。移动次数为:f[j]。第二步:再把原1柱上剩下的i-j个盘子在3根柱子(1、3、4)之间移动,最后移动到目标柱4上,因为此时2柱不能作为中间柱子使用,根据三柱问题可知,移动次数为:2^(i-j)-1。第三步:最后把非目标柱2柱上的j个盘子移动到目标柱上,次数为:f[j]。
通过以上步骤我们可以初步得出:f[i]=2*f[j]+2^(i-j)-1f[i]=min{2*f[j]+2^(i-j)-1},其中1=jIj可取的范围是1=jI,所以对于不同的j,得到的f[i]可能是不同的,本题要求最少的移动次数
constMaxNum=100
文档评论(0)