🔧Toolify

斐波那契計算器 — 第N項與數列

輸入位置N以取得該項的精確斐波那契數,或切換至數列模式以顯示斐波那契數列的前N個數。使用任意精度整數,確保結果始終精確。

請在上方輸入數字N進行計算。

運作原理

斐波那契數列:定義與歷史

斐波那契數列由兩條簡單規則定義:前兩項為0和1,此後每一項都是前兩項之和。由此得到數列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …。規則看似簡單,這些數字卻以令人著迷的方式遍布數學、電腦科學和自然界,數百年來吸引著學者的目光。

該數列以比薩的萊昂納多(即斐波那契)命名,他在1202年的著作《算盤書》中將其引入西歐,作為兔子族群增長的數學模型。然而,早在幾個世紀前,研究梵語音韻的印度數學家——維拉漢卡、戈帕拉和赫馬錢德拉——就已在統計音節模式時識別出了這一數列。因此,斐波那契數列是已知最古老的整數數列之一。

相鄰斐波那契數之比收斂於黃金比例φ≈1.61803…,這是一個與幾何、藝術和美學都有深刻聯繫的無理數。隨著N增大,F(N+1)/F(N)越來越接近φ。這種收斂性解釋了為何向日葵種子排列、松果螺旋和鸚鵡螺貝殼中都會出現斐波那契螺旋——這些形態在生長過程中以最少的材料實現了最佳的填充效率。

精確計算大斐波那契數

JavaScript的標準Number型別儲存64位元浮點值,只能精確表示不超過2^53(約9千兆)的整數。斐波那契數呈指數增長——F(79)已超過2^53——因此對於較大的N,普通浮點運算會給出錯誤結果。本工具使用JavaScript內建的BigInt型別,支援僅受可用記憶體限制的任意大小整數,確保從F(1)到F(100)的每個結果都精確無誤。

F(100) = 354,224,848,179,261,915,075,共21位數字。作為對比,可觀測宇宙中原子的估計數量約為10^80,而F(382)≈10^79。斐波那契數的增長速率約為φ^N/√5,因此每一項大約比前一項大61.8%。

斐波那契數存在閉合公式(比內公式使用黃金比例的冪),但要對大N精確計算,需要任意精度運算,因為φ是無理數。本工具使用的迭代方法——逐項相加——對幾千以內的N既精確又高效。

斐波那契數的應用

在電腦科學中,斐波那契數出現在演算法分析裡。歐幾里得演算法(計算最大公因數)的最壞情況輸入就是連續的斐波那契數。用於Dijkstra最短路徑演算法的資料結構——斐波那契堆積——也以該數列命名,因為其結構界限與數列相關。斐波那契搜尋也是一種分治搜尋策略。

在軟體工程中,斐波那契數被廣泛用於敏捷開發的故事點估算:1, 2, 3, 5, 8, 13。這種非線性間距體現了對較大任務估算時不確定性的增加——相鄰斐波那契數之間的明顯差距迫使估算者在模糊選擇中做出明確決定,從而減少虛假精確性。

在自然界中,植物葉序——葉片、花瓣和種子在植物上的排列——往往遵循斐波那契數。向日葵通常有55條順時針和89條逆時針螺旋;朝鮮薊有8和13條。這種排列源於植物每次以相對於前一器官約137.5°(黃金角)的位置添加新器官的生長模式,這與黃金比例φ直接相關。

常見問題

F(0)是0還是1?

按最常見的現代慣例(本工具採用此慣例),F(0)=0,F(1)=1,F(2)=1,F(3)=2,……部分較早的文獻從F(1)=1,F(2)=1開始,使所有索引偏移一位。

為什麼本工具上限為N=100?

F(100)已經是21位數字。超過100之後,數值變成很長的字串,在此場景下實用價值有限。如需F(100)以外的值,迭代BigInt邏輯可以擴展——演算法完全相同。

大N的結果是否精確?

是的。本工具使用JavaScript BigInt,可處理任意大小的整數,不存在浮點捨入誤差。從F(1)到F(100)的每個結果在數學上都是精確的。

黃金比例是什麼,它與斐波那契數列有何關係?

黃金比例φ≈1.61803…是方程式x²=x+1的正根。隨著N增大,相鄰斐波那契數之比F(N+1)/F(N)收斂於φ。F(20)/F(19)=6765/4181≈1.61803,精度已達到小數點後5位。

斐波那契數列與盧卡斯數列相同嗎?

不同。盧卡斯數列使用相同的遞推關係(每項是前兩項之和),但起始值為L(0)=2,L(1)=1,得到:2, 1, 3, 4, 7, 11, 18, …。它們與斐波那契數列有很多共同性質,且都收斂於φ。

斐波那契數在自然界中出現在哪裡?

斐波那契數出現在向日葵的螺旋計數中(通常為55和89條),松果(通常為8和13條)和鳳梨中。這是因為植物以約137.5°(黃金角)的角度添加新器官,而黃金角由φ推導而來,從而產生最佳的填充效果。

斐波那契數增長有多快?

斐波那契數呈指數增長,近似為φ^N/√5。每項約為前一項的1.618倍。F(10)=55,F(20)=6,765,F(50)=12,586,269,025,F(100)=354,224,848,179,261,915,075。

為什麼敏捷開發使用斐波那契數作為故事點?

使用斐波那契數列(1, 2, 3, 5, 8, 13, 21)是因為相鄰值之間的差距不斷增大,迫使團隊區分「中等」和「大型」任務。這種非線性間距在估算本質上不確定的工作時減少了虛假精確性。

相關工具

最後更新:

看看 AI 提示詞 →