上臺階問題的遞推分析

問題描述:spa

樓梯有N級臺階,上樓能夠一步上一階,也能夠一步上二階。編一遞推程序,計算共有多少種不一樣走法?ci

分析:原理

臺階數1……方法數F1=1程序

臺階數2……方法數F2=2方法

 

臺階數爲3的時候,方法數F3的分析以下:co

分兩類:

(1)第一步走1個臺階方法數是1;剩餘的2個臺階方法數目爲2.(這個是根據前述分析所得結果。)根據乘法原理,這一類狀況下,走法數目爲1*2=2

(2)第一步走2個臺階方法數是1;剩餘的1個臺階方法數目爲1.(這個是根據前述分析所得結果。)根據乘法原理,這一類狀況下,走法數目爲1*1=1種

綜上所述,臺階數爲3時,根據加法原理,走法數目爲F3=2+1=3種

 

臺階數爲4的時候,方法數目F4的分析以下:

分兩類:

(1)第一步走1個臺階方法數是1;剩餘的3個臺階方法數目爲3.(這個是根據前述分析所得結果。)根據乘法原理,這一類狀況下,走法數目爲1*3=3種

(2)第一步走2個臺階方法數是1;剩餘的2個臺階方法數目爲2.(這個是根據前述分析所得結果。)根據乘法原理,這一類狀況下,走法數目爲1*2=2種

綜上所述,臺階數爲4時,根據加法原理,走法數目爲F4=3+2=5種

 

……

 

臺階數爲n的時候,方法數目的分析以下:

分兩類:

(1)第一步走1個臺階方法數是1;剩餘的n-1個臺階方法數目爲Fn-1.(這個是根據前述分析所得結果。)根據乘法原理,這一類狀況下,走法數目爲1*Fn-1

(2)第一步走2個臺階方法數是1;剩餘的2個臺階方法數目爲Fn-2.(這個是根據前述分析所得結果。)根據乘法原理,這一類狀況下,走法數目爲1*Fn-2

綜上所述,臺階數爲n時,根據加法原理,走法數目爲Fn=Fn-1+Fn-2種。

 

因此,走n階臺階的方法數目以下:(符合斐波列契數列(Faibonacci)的規則)

F1=1 ……(N=1)
F2=2 ……(N=2)
Fn=Fn-1 + Fn-2 ……(N>=3)

相關文章
相關標籤/搜索