之前經常會遇見讓實現斐波那契數列的程式設計題,但是一直不知道為什麼要實現這個數列,這個數列又有什麼作用,為什麼數列的定義是哪樣的?後來在上組合數學課程的時候,才發現了關於斐波那契數列的一些具體應用示例,現將之記錄下來。
斐波那契數列是指前兩項為1,從第三項起後每一項項是前兩項之和的乙個數列,即斐波那契數列的例項為:1,1,2,3,5,8,13,21,34,55,89,144…
斐波那契數列數列的遞推公式可由下式進行描述:
f_0 = 1\\ f_1 = 1\\ f_n = f_ + f_,&n \ge 2 \end
⎩⎪⎨⎪⎧
f0=
1f1
=1fn
=fn
−1+
fn−2
,n
≥2
斐波那契數列的通項公式可描述為:
f n=
55∗[
(1+5
2)n−
(1−5
2)n]
f_n = \frac}*[})}^n-})}^n]
fn=55
∗[
(21+
5)
n−(2
1−5
)n]
上樓梯問題:
某人欲登上n
nn級樓梯,若每次只能跨一級或者兩級,則從地面到第n
nn級樓梯,共有多少種不同的方法?
求解這個問題時,可以從第n
nn級開始,以自頂向下的思想進行求解。首先假設上到第n
nn級樓梯的方法數有a
na_n
an種,則最後一步有兩種可能:
1.跨一步,則剩下的n-1級樓梯有an-1種上法所以第an=2.跨兩步,則剩下的n-2級樓梯有an-2種上法
an−1
+an−
2a_n = a_ + a_
an=an
−1+
an−2
,從a
na_n
an開始遞迴求解,直到a
3a_3
a3都可使用上式進行求解。當求a
2a_2
a2時,根據規則限制,只有兩種方法,第一種為直接一步上兩級,第二種為每次上一級,所以a2=
2a_2 = 2
a2=2。a
1a_1
a1因為所求得第一級的上法,限於規則只有一種方法。所以整個過程可用下式描述:
a_n = a_ + a_,n=\ge 3\\ a_1 = 1,a_2 = 2 \end
an=an
−2種。
2.當第n
nn號棋盤染藍色時,則n−1
n-1n−
1號棋盤既可以染紅色也可以染藍色,則$a_n = a_種。
綜上可得 an=
an−1
+an−
2a_n = a_ + a_
an=an
−1+
an−2
。下面繼續分析n=2
n=2n=
2和n=
1n=1
n=1的情況,當n=2
n=2n=
2時,紅藍、藍藍、藍紅三種染色方法。當n=1
n=1n=
1時,有紅、藍兩種染色方法。所以可以用如下公式描述:
a_n = a_ + a_,n=\ge 3\\ a_1 = 2,a_2 = 3 \end
= 1,\frac = 1+\frac,\frac =1+\frac},\frac = 1+\frac}},\frac = 1+ \frac}}}
11=1,
12=
1+11
,23
=1+
1+11
1,
35=
1+1+
1+11
11
,58
=1+
1+1+
1+11
11
1fn=
15∗[
(1+5
2)n−
(1−5
2)n]
=φn5
−(1−
φ)n5
f_n = \frac}*[})}^n-})}^n] = \frac}-\frac^n}}
fn=5
1∗[
(21+
5)
n−(2
1−5
)n]
=5φ
n−5
(1−
φ)n
而**分割數也可以用無限多重根號表示:
φ =1
+11+
11+1
1+11
+11+
1...
\varphi=1+\frac}}}}}
φ=1+1+
1+1+
1+1+
...1
11
11
1斐波那契數列第n
nn項與第n−1
n-1n−
1項比值的極限即為**分割比。
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 斐波那契數列應用
什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...
斐波那契數列
1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...