零加一中:Fibonacci問題詳解 |
送交者: 俠行天涯 2011年03月14日17:40:52 於 [靈機一動] 發送悄悄話 |
有一對剛生的小兔子,兩個月後每月生一對小兔子。所生的小兔子也是兩個月後開始每月生一對小兔子。問N個月後有幾對兔子? F(0) = 1, F(1) = 1, F(2) =2, ... 先推導F(n)的遞推公式 F(n) = F(n-1) + F(n-2) , n > 1 我們把F(n-2)分為兩部分a和b,a為當月出生的,其他為b。a要到第n月才能生育,b下月都可生育。 F(n-2) = a + b, F(n-1) =a + 2b, F(n) = 2a + 3b 我們有F(n) = F(n-1) + F(n-2) , n > 1。 f(x) = Sum(F(n)xn) n=0,1,2,... = 1 + x + Sum{F(n-1))xn + F(n-2))xn }, n=2,3,4,... = 1 + x + x{f(x) - 1} + x2f(x) 經整理得 f(x){1 - x - x2} = 1 f(x) =1/ {1 - x - x2} = -1 / {(x + x-)(x + x+)} = 1 /{(1+ x/x-)(1+ x/x+)} 這兒 x+ = (1 + SQRT(5))/2 , x- = (1 - SQRT(5))/2 f(x) = -( x-/ SQRT(5))/(1+ x/ x+) + (x+/ SQRT(5) )(1+ x/ x-) 兩項均展開後xn的係數即F(n)。第一項的係數正負交替,第二項恆正。當n很大時,第一項可忽略不計。 有些書定義F(0) = 1, F(1) = 2,細節可能會有所不同。 |
|
|
|
實用資訊 | |