斐波那契數列計算器(F(n) = F(n-1) + F(n-2))
使用 BigInt 精確計算至 F(100) 的斐波那契數。視覺化相鄰項之比對黃金比例 φ 的收斂過程、盧卡斯數以及前 N 項的柱狀圖。
提示
- 斐波那契數列由遞推公式 F(n) = F(n−1) + F(n−2) 定義,初始值為 F(1) = F(2) = 1。
- 相鄰項之比 F(n+1)/F(n) 隨 n 增大而收斂至黃金比例 φ ≈ 1.618。可在收斂表中觀察這一過程。
- 當 n > 78 時,JavaScript 的 64 位浮點數無法精確表示斐波那契數。「查詢第 n 項」輸入框使用 BigInt 可精確計算至 n = 100。
- 斐波那契數廣泛出現於自然界:向日葵種子的螺旋排列、松果的鱗片以及鸚鵡螺的截面均遵循斐波那契規律(葉序現象)。
常見問題
兩種約定均存在。本工具採用從 1 開始的約定 F(1) = 1, F(2) = 1,這在日本高中數學中較為常見。從 0 開始的約定 F(0) = 0, F(1) = 1 同樣有效,在電腦科學中更為普遍。
盧卡斯數與斐波那契數列使用相同的遞推關係 L(n) = L(n−1) + L(n−2),但初始值不同:L(1) = 1, L(2) = 3,後續為 1, 3, 4, 7, 11, 18, 29, …。它們以與斐波那契數列相同的速度收斂至黃金比例。
比內公式是解析式 F(n) = (φⁿ − ψⁿ) / √5,其中 φ = (1+√5)/2,ψ = (1−√5)/2。它可以直接由 n 求得斐波那契數,無需計算前項。但對於大 n,浮點誤差會導致結果不準確,因此本工具改用 BigInt 整數迭代法。
閒話 ― 斐波那契與黃金比例
這個數列雖然以斐波那契命名,但它的歷史其實比他本人還要古老。它在歐洲被廣泛認識,要歸功於比薩的列奧納多——後人稱他為斐波那契——他在 1202 年出版的著作《算盤書》(Liber Abaci)中,用一個理想化的兔子繁殖問題引入了這個數列,這套數列也正因此逐漸傳入了歐洲的數學傳統。有趣的是,早在這之前很久,印度數學家 Pingala 在研究詩歌韻律(音節長短的排列組合)時,就已經推匯出了本質相同的數列——只是兩者相隔久遠,彼此並不知曉對方的發現。
斐波那契數列真正迷人之處,或許在於它與黃金比例 φ = (1 + √5) / 2 ≈ 1.618 之間若即若離的關係。隨著 n 增大,相鄰兩項之比 F(n+1)/F(n) 會越來越逼近 φ,這並非巧合,而是源於 φ 本身滿足 φ² = φ + 1 這一代數性質——這恰好就是斐波那契遞推關係在極限情形下自然匯出的結果。
這種收斂關係還催生了一個優雅的解析工具——比內公式:F(n) = (φⁿ − ψⁿ) / √5,其中 ψ = (1 − √5) / 2 ≈ −0.618。它的巧妙之處在於,斐波那契數列本來是靠遞推逐項累加定義的,而這個公式卻能讓我們跳過所有中間步驟,直接由 n 算出任意一項的值。只不過當 n 較大時,浮點數的精度誤差會讓這個公式失去準確性,這也是為什麼本工具在計算大項時改用 BigInt 進行整數迭代,而不是直接套用比內公式。