递推关系的建立及其求解方法.ppt
《递推关系的建立及其求解方法.ppt》由会员分享,可在线阅读,更多相关《递推关系的建立及其求解方法.ppt(42页珍藏版)》请在三一办公上搜索。
1、递推关系的建立及其求解方法,王桐林,一、递推式的建立 0、Fibonacci数列 1、Hanoi塔问题问题:三柱问题问题:四柱问题问题:m柱问题2、平面分割问题问题:封闭曲线分割平面问题:Z分割平面问题:M分割平面3、Catalan数问题一:凸n边形的三角形剖分问题二:二叉树数目问题三:出栈序列4、第二类Stirling数 问题一:放置小球问题二:集合划分问题5、其他问题一:集合取数问题问题二:整数划分问题,二、递推式的求解方法:1 递归函数用数组实现求递推式的通项表达式:31、迭加法 32、待定系数法 33、特征方程法 34、生成函数法,三、递推的形式,顺推法和倒推法,Fibonacci数列
2、的代表问题是由意大利著名数学家Fibonacci于1202年提出的“兔子繁殖问题”(又称“Fibonacci问题”)。问题:一个数列的第0项为0,第1项为1,以后每一项都是前两项的和,这个数列就是著名的裴波那契数列,求裴波那契数列的第N项。,1、Fibonacci数列,解答,由问题,可写出递推方程,算法:F0:=1;F1:=2;FOR i:=2 TO N DO FI:=FI 1+FI 2;,总结,从这个问题可以看出,在计算裴波那契数列的每一项目时,都可以由前两项推出。这样,相邻两项之间的变化有一定的规律性,我们可以将这种规律归纳成如下简捷的递推关系式:Fn=g(Fn-1),这就在数的序列中,建
3、立起后项和前项之间的关系。然后从初始条件(或是最终结果)入手,按递推关系式递推,直至求出最终结果(或初始值)。很多问题就是这样逐步求解的。对一个试题,我们要是能找到后一项与前一项的关系并清楚其起始条件(或最终结果),问题就可以递推了,接下来便是让计算机一步步了。让高速的计算机从事这种重复运算,真正起到“物尽其用”的效果。,递推概念,给定一个数的序列H0,H1,Hn,若存在整数n0,使当n=n0时,可以用等号(或大于号、小于号)将Hn与其前面的某些项Hn(0in)联系起来,这样的式子就叫做递推关系。如何建立递推关系递推关系有何性质如何求解递推关系,1、Hanoi塔问题 问题的提出:Hanoi塔由
4、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柱最下
5、面的一个盘子移动到3柱上,只需要1次 盘子。第三步:再借助1柱把2柱上的n-1个盘子移动到3上,所需的移动次 数为f(n-1)。,由以上3步得出总共移动盘子的次数为:f(n-1)+1+f(n-1)。所以:f(n)=2 f(n-1)+1,f(n)=2n-1,问题:四柱问题,【问题分析】:令fi表示四个柱子时,把i个盘子从原柱移动到目标柱所需的最少移动次数。,j,第一步:先把1柱上的前j个盘子移动到另外其中一个非目标柱(2或3柱均可,假设移到2柱)上,此时3和4柱可以作为中间柱。移动次数为:fj。,第二步:再把原1柱上剩下的i-j个盘子在3根柱子(1、3、4)之间移动,最后移动到目标柱4上,因为此
6、时2柱不能作为中间柱子使用,根据三柱问题可知,移动次数为:2(i-j)-1。,第三步:最后把非目标柱2柱上的j个盘子移动到目标柱上,次数为:fj。,通过以上步骤我们可以初步得出:fi=2*fj+2(i-j)-1,j可取的范围是1=jI,所以对于不同的j,得到的fi可能是不同的,本题要求最少的移动次数,fi=min2*fj+2(i-j)-1,其中1=jI,const MaxNum=1000;var n:integer;F3,F4:array1.MaxNum of double;procedure Init;var i:integer;begin fillChar(F3,sizeOf(F3),0)
7、;fillChar(F4,sizeOf(F4),0);readln(n);F31:=1;F41:=1;*F3n 为Hanoi塔中3根柱子,n个盘子的最少移动次数 F3n=2n-1;F4n 为Hanoi塔中4根柱子,n个盘子的最少移动次数*for i:=2 to n do F3i:=2*F3i-1+1;end;,procedure Run;var i,j:integer;minF4i,temp:double;begin for i:=2 to n do begin minF4i:=1e+100;for j:=1 to i-1 do begin temp:=2*F4j+F3i-j;if(temp
8、minF4i)then minF4i:=temp;end;*F4i=min(2*F4j+F3i-j);(1=j=i-1)*F4i:=minF4i;end;writeln(F4n:0:0);end;begin Init;Run;end.,问题:m柱问题,【问题分析】:设F(m,n)为m根柱子,n个盘子时移动的最少次数:,1、先把1柱上的前j个盘子移动到另外其中一个除m柱以外的非目标柱上,移动次数为:fm,j;,2、再把原1柱上剩下的n-j个盘子在m-1根柱子之间移动,最后移动到目标柱m上,移动次数为:fm-1,n-j;,3、最后把非目标柱上的j个盘子移动到目标柱没柱上,移动次数为:fm,j。,F
9、(m,n)=min2*F(m,j)+F(m-1,n-j)(1=j n),2、平面分割问题问题问题的提出:设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,求这些封闭曲线把平面分割成的区域个数。,【问题分析】:设f(n)为n条封闭曲线把平面分割成的区域个数。由图4很容易得出:f(1)=2;f(2)=4。,假设当前平面上已有的n-1条曲线将平面分割成f(n-1)个区域,现在加入第n条封闭曲线。第n条曲线每与已有的n-1条曲线相交共有2(n-1)个交点,也就是说第n条曲线被前n-1条曲线分割成2(n-1)段弧线,而每一条弧线就会把原来的区域一分为二,即增
10、加一个区域,所以共增加2(n-1)个区域,F(n)=f(n-1)+2(n-1),问题问题的提出:一个z形曲线可以把一个平面分割成2部分。如图所示。求n个z形曲线最多能把平面分割成多少部分。写出递推式f(n)。,【问题分析】:根据上图容易得出:f(1)=2;f(2)=12。假设平面上已有n-1个z图形把平面分成了f(n-1)个区域。加入第n个z后,单独考虑第n个z的3条边,每一条边和前面的n-1个z共有3(n-1)个交点,即这条边被分成3(n-1)+1部分,所以增加3(n-1)+1个区域,3条边共增加3(3(n-1)+1)个区域。但是第n个z本身有2个交点,故少了2个区域,所以实际增加了3(3(
11、n-1)+1)-2个区域。由以上得出:f(n)=f(n-1)+3(3(n-1)+1)-2 即:f(n)=f(n-1)+9n-8 初始条件:f(1)=2,问题:M分割平面问题二的扩展:在问题二的基础上进一步考虑:如果z图形扩展为m边的下列图形:看一下问题的解。,通过上面的分析我们很容易知道:n个上述图形可以将平面划分的区域的递推关系:f(n)=f(n-1)+m(m(n-1)+1)-(m-1)初始条件:f(1)=2,3、Catalan数问题一:凸n边形的三角形剖分在一个凸n边形中,通过不相交于n边形内部的对角线,把n边形拆分成若干三角形,不同的拆分数目用f(n)表之,f(n)即为Catalan数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 建立 及其 求解 方法

链接地址:https://www.31ppt.com/p-6028475.html