遞推演算法,遞推算

來源:互聯網
上載者:User

遞推演算法,遞推算
遞推演算法一、遞推演算法簡介

一般是兩步:

1、根據題目條件推出遞推公式

2、根據遞推公式編寫代碼求解(一般可以寫成普通迴圈和遞迴)

 

二、執行個體2.1 斐波拉契數列

斐波拉契數列,1 1 2 3 5 8 13 21 34......,寫出第n項。

(1)遞推公式

f(n)=f(n-1)+f(n-2) f(1)=1,f(2)=1;

(2)代碼
 1 #include <iostream> 2 using namespace std; 3  4 int Fibonacci(int n); 5 int Fibonacci_Recursion(int n); 6  7  8 /* 9     非遞迴解法: 10     和輾轉相除法的非遞迴解法好像11     輾轉相除法是while迴圈以及中間是百分比符號12     這裡是for迴圈以及中間是加號(f3=f2+f1)13     for迴圈是知道迴圈次數的迴圈,while迴圈是單一限制條件的迴圈 14 */ 15 int Fibonacci(int n){16     int f1=1;17     int f2=1;18     int f3;19     for(int i=3;i<=n;i++){20         f3=f2+f1;21         f1=f2;22         f2=f3;23     }24     return f3;25 }26 27 /*28     遞迴解法: 29     本題的遞推條件為: f(n)=f(n-1)+f(n-2) f(1)=1,f(2)=1;30     遞推條件的限制條件 f(1)=1,f(2)=1是遞迴的限制條件31     遞推條件的公式是遞迴的主體部分32     這樣來想遞迴是不是特別簡單33     34     遞迴和非遞迴的區別:35     這裡的非遞迴是從前往後推從而得到結論的,例如通過f(1)和f(2)得f(3), 通過f(2)和f(3)得f(4)...36     遞迴卻是從後往前,要求 f(9),就要求f(8)和f(7),要求f(8),就要求f(7)和f(6)37     遞迴的具體過程這裡就不贅述了,遞迴是先由後往前,再由前往後得到f(9),進行了兩輪 38     非遞迴是直接由前往後到f(9) ,進行了一輪 39 */ 40 int Fibonacci_Recursion(int n){41     if(n==2||n==1) return 1;42     else{43         return Fibonacci_Recursion(n-1)+Fibonacci_Recursion(n-2);44     } 45 } 46 47 int main(){48     int n;49     //n=Fibonacci(9);50     n=Fibonacci_Recursion(9);51     printf("%d\n",n);52     return 0;53 } 
(3)答案

34

 

三、執行個體擴充3.1 台階問題

有n階台階,每次可以跨一階或者二階,求總共有多少種走法?

遞推公式為f(n)=f(n-1)+f(n-2) f(1)=1,f(2)=1;這裡不贅述了。

3.2 兔子問題

農場來了一對小兔子,小兔子兩個月可長大,長大後每個月生一對小兔子,求n個月後兔子總對數。

遞推公式為f(n)=f(n-1)+f(n-2) f(1)=1,f(2)=1;這裡不贅述了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.