費氏數列計算機
計算第 n 個費氏數。顯示 F(n−1)、趨近黃金比例 φ ≈ 1.61803 的比值,以及 F(0) 到 F(n) 的完整數列。支援 n = 0~70。
輸入
結果
這個計算機能計算什麼
費氏數列(Fibonacci sequence)是一組以遞迴關係定義的整數數列:每一項等於前兩項之和,起始值為 F(0) = 0、F(1) = 1。本計算機可針對 0 到 70 的任意索引 n,求出 F(n)、F(n−1)、比值 F(n)/F(n−1),以及 F(0) 到 F(n) 的完整數列。
費氏數列的定義
費氏數列從 0 和 1 開始,此後每一項都等於前兩項之和:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
正式定義:F(0) = 0,F(1) = 1,n ≥ 2 時 F(n) = F(n−1) + F(n−2)。
名稱源自義大利數學家比薩的李奧納多(約1170–1250),後人稱為「費波那契」(Fibonacci)。他在1202年的著作《算盤書(Liber Abaci)》中以兔子繁殖問題介紹了這個數列。不過,相同的規律早在幾個世紀前便已出現在印度數學家對梵文韻律學的研究中。
計算機如何計算 F(n)
本計算機採用迭代迴圈而非遞迴定義。從 F(0) = 0 和 F(1) = 1 出發,每一步將前兩項相加,只需 n − 1 次加法即可得到 F(n)。時間複雜度為 O(n),可避免樸素遞迴造成的指數級呼叫爆炸。
最大支援索引為 n = 70,因為 F(70) = 190,392,490,709,135 是 64 位元 IEEE 754 雙精度浮點數可精確表示的最大費氏數。n = 71 以上的數值會超過安全整數上限 2⁵³,浮點數捨入將導致錯誤結果。
計算範例
輸入: n = 12
| n | F(n) |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 5 | 5 |
| 6 | 8 |
| 7 | 13 |
| 8 | 21 |
| 9 | 34 |
| 10 | 55 |
| 11 | 89 |
| 12 | 144 |
結果: F(12) = 144、F(11) = 89、比值 = 144/89 ≈ 1.61797753。
值得一提的是,144 = 12² 是完全平方數。數學上可以證明,費氏數中只有 0、1 和 144 是完全平方數(Ljunggren 定理)。
與黃金比例的關聯
隨著 n 增大,F(n) / F(n−1) 的比值趨近黃金比例:
| n | F(n) | F(n)/F(n−1) |
|---|---|---|
| 5 | 5 | 1.66667 |
| 10 | 55 | 1.61765 |
| 20 | 6,765 | 1.61803 |
| 30 | 832,040 | 1.61803399 |
n = 20 時,比值已精確到小數點後六位。黃金比例出現在正五邊形的對角線與邊長之比、古典建築的比例設計,以及向日葵種子和松果的螺旋排列中,是自然界和藝術中最知名的數學常數之一。
比內公式
比內公式不需迭代,可直接表達 F(n):
其中 為黃金比例, 為其共軛數。
由於 |ψ| < 1,ψⁿ 隨 n 增大而趨近於零。因此對 n ≥ 1,F(n) 就是 最近的整數。這個公式在理論上十分優美,但使用浮點數運算,n 較大時會產生累積誤差,所以本計算機選擇迭代法以確保整數精確度。
費氏數列在自然與科學中的出現
費氏數列在多個領域均可見到其蹤跡:
- 植物學: 許多花卉的花瓣數是費氏數——常見的有 3、5、8 或 13 瓣。向日葵的種子頭通常有 34 和 55 條方向相反的螺旋列。
- 葉序: 葉片和枝條常以與 φ 相關的角度生長,使葉片受光面積最大化。
- 電腦科學: 圖演算法中使用的資料結構「費氏堆積(Fibonacci heap)」以此數列命名。樸素遞迴的費氏計算也是演算法教學中指數時間複雜度的經典示例。
- 技術分析: 費氏回調水準(23.6%、38.2%、61.8%)由相鄰項的比率衍生而來,在股市和外匯市場中被廣泛使用,但其預測效力仍有爭議。
常見問題(FAQ)
什麼是費氏數列?
費氏數列是一種每一項都等於前兩項之和的數列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … 正式定義為 F(0) = 0、F(1) = 1,n ≥ 2 時 F(n) = F(n−1) + F(n−2)。名稱源自13世紀義大利數學家比薩的李奧納多(Fibonacci,約1170–1250),他在1202年的著作《算盤書》中以兔子繁殖問題介紹了這個數列,但印度數學家早幾個世紀便已在梵文韻律學中描述了相同的規律。
費氏數列和黃金比例有什麼關係?
當 n 愈來愈大,相鄰費氏數的比值 F(n) / F(n−1) 會趨近黃金比例 φ = (1 + √5) / 2 ≈ 1.6180339887。n = 10 時比值已達 1.61765,n = 20 時已精確到小數點後六位。這種關聯出現在正五邊形的對角線與邊長之比、藝術與建築的比例設計,以及向日葵種子螺旋排列等自然界現象中。
比內公式是什麼?
比內公式可以不需迭代,直接計算 F(n):F(n) = (φⁿ − ψⁿ) / √5,其中 φ = (1 + √5)/2 ≈ 1.61803 為黃金比例,ψ = (1 − √5)/2 ≈ −0.61803 為其共軛數。由於 |ψ| < 1,ψⁿ 隨 n 增大而趨近於零,因此 n ≥ 1 時 F(n) 即為 φⁿ / √5 最近的整數。此公式雖然優美,但使用浮點數運算,n 較大時會產生誤差,故本計算機採用迭代法以確保精確結果。
這個計算機最多能算到第幾項?
本計算機支援 n = 0 到 70。F(70) = 190,392,490,709,135 是 JavaScript 64 位元雙精度浮點數(IEEE 754 double)可精確表示的最大費氏數。F(71) 起的數值超過安全整數上限 2⁵³ = 9,007,199,254,740,992,進位捨入會造成誤差,因此上限設為 n = 70。