1. 程式人生 > >遞迴與遞推設計 猴子爬山問題 農夫圈羊問題

遞迴與遞推設計 猴子爬山問題 農夫圈羊問題

1.      猴子爬山問題

一個頑猴在一座有100級臺階的小山上爬山跳躍,

猴子上山一步可跳1級,或跳2級,試求上山的100級

臺階有多少種不同的爬法。

遞推演算法設計

一般地有遞推關係:

       f(k)=f(k-1)+f(k-3)     (k>3)

初始條件有:

       f(1)=1; 即1=1。

       f(2)=2; 即2=1+1。2=2

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

類似非波那數列

要求用大數演算法。

2.      農夫圈羊問題

農夫要修一個20m*20m*2m的羊欄,現在有1m*2m和2m*2m的木板,需要在拐角處留一個1米寬2米高的門 計算共有多少種建法?

分析: F1=1

F2=3 

         F3=F2+2*F1     

              …………                  

              Fn=F(n-1)+2*F(n-2)

F(n-1)+一個1*2;F(n-2)+1個2*2;F(n-2)+兩個1*2橫著。(F(n-2)+2個1*2豎著是F(n-1)+一個1*2的一部分)

F20=F19(F19+一個1*2)

      F40=F39

      F60=F59

用大數演算法