网站大量收购独家精品文档,联系QQ:2885784924

递归与分治策略课件.pptxVIP

递归与分治策略课件.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1遞歸與分治策略

22.1遞歸的概念直接或間接地調用自身的演算法稱為遞歸演算法。用函數自身給出定義的函數稱為遞歸函數。在電腦演算法設計與分析中,使用遞歸技術往往使函數的定義和演算法的描述簡潔且易於理解。下麵來看幾個實例。

32.1遞歸的概念例1階乘函數可遞歸地定義為:其中:n=0時,n!=1為邊界條件n0時,n!=n(n-1)!為遞歸方程邊界條件與遞歸方程是遞歸函數的二個要素,遞歸函數只有具備了這兩個要素,才能在有限次計算後得出結果。

42.1遞歸的概念例2Fibonacci數列無窮數列1,1,2,3,5,8,13,21,34,55,…,被稱為Fibonacci數列。它可以遞歸地定義為:第n個Fibonacci數可遞歸地計算如下:publicstaticintfibonacci(intn){if(n=1)return1;returnfibonacci(n-1)+fibonacci(n-2);}小兔子問題

52.1遞歸的概念例3Ackerman函數當一個函數及它的一個變數是由函數自身定義時,稱這個函數是雙遞歸函數。Ackerman函數A(n,m)定義如下:前2例中的函數都可以找到相應的非遞歸方式定義。但本例中的Ackerman函數卻無法找到非遞歸的定義。

62.1遞歸的概念A(n,m)的引數m的每一個值都定義了一個單變數函數:M=0時,A(n,0)=n+2M=1時,A(n,1)=A(A(n-1,1),0)=A(n-1,1)+2,和A(1,1)=2故A(n,1)=2*nM=2時,A(n,2)=A(A(n-1,2),1)=2A(n-1,2),和A(1,2)=A(A(0,2),1)=A(1,1)=2,故A(n,2)=2^n。M=3時,類似的可以推出M=4時,A(n,4)的增長速度非常快,以至於沒有適當的數學式子來表示這一函數。定義單變數的Ackerman函數A(n)為,A(n)=A(n,n)。定義其擬逆函數α(n)為:α(n)=min{k|A(k)≥n}。即α(n)是使n≤A(k)成立的最小的k值。α(n)在複雜度分析中常遇到。對於通常所見到的正整數n,有α(n)≤4。但在理論上α(n)沒有上界,隨著n的增加,它以難以想像的慢速度趨向正無窮大。

72.1遞歸的概念例4排列問題設計一個遞歸演算法生成n個元素{r1,r2,…,rn}的全排列。設R={r1,r2,…,rn}是要進行排列的n個元素,Ri=R-{ri}。集合X中元素的全排列記為perm(X)。(ri)perm(X)表示在全排列perm(X)的每一個排列前加上首碼得到的排列。R的全排列可歸納定義如下:當n=1時,perm(R)=(r),其中r是集合R中唯一的元素;當n1時,perm(R)由(r1)perm(R1),(r2)perm(R2),…,(rn)perm(Rn)構成。

82.1遞歸的概念例5整數劃分問題將正整數n表示成一系列正整數之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整數n的這種表示稱為正整數n的劃分。求正整數n的不同劃分個數。例如正整數6有如下11種不同的劃分:6;5+1;4+2,4+1+1;3+3,3+2+1,3+1+1+1;2+2+2,2+2+1+1,2+1+1+1+1;1+1+1+1+1+1。

92.1遞歸的概念前面的幾個例子中,問題本身都具有比較明顯的遞歸關係,因而容易用遞歸函數直接求解。在本例中,如果設p(n)為正整數n的劃分數,則難以找到遞歸關係,因此考慮增加一個引數:將最大加數n1不大於m的劃分個數記作q(n,m)。可以建立q(n,m)的如下遞歸關係:q(n,1)=1,n≥1;當最大數n1不大於1時,任何正整數n只有一種劃分形式:n=1+1+...+1(共n個)。Q(n,m)=q(n,n),m≥n;最大加數n1實際上不能大於n。因此,q(1,m)=1。q(n,n)=1+q(n,n-1);正整數n的劃分由n1=n的劃分和n1≤n-1的劃分組成。q(n,m)=q(n,m-1)+q(n-m,m),nm1;正整數n的最大加數n1不大於m的劃分由n1=m的劃分和n1≤m-1的劃分組成。

102.1遞歸的概念正整數n的劃分數p(n)=q(n,n)。

112.1遞歸的概念例6Hanoi塔問題設a,b,c是3個塔座。開始時,在塔座a上有一疊共n個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,…,n,現要求將塔座a上的這一疊圓盤移到塔座b上,並仍按同樣順序疊置。在移動圓盤時應遵守以下移動規則:每次只能移動1個圓盤;任何時刻都不允許將較大的圓盤壓在較小的圓盤之上;在滿足移動規則1和2的前提下,可將圓盤移至a,b,c中

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档