費氏數列(Fibonacci sequence)是以零為起點的索引清單:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,其中每一項(在前兩項之後)等於前兩項之和;它在自然界中以花瓣數、向日葵種子螺旋、松果鱗片與貝殼腔室等反覆出現的數量形式呈現。當你著手尋找這些規律時,實際的工作就是將你觀察到的數字與一份權威的數值清單反覆核對,藉此判斷你所計數的結果是否確實屬於其中一項。許多非正式的來源會略過 0 而從 1, 1 起算,這會讓你難以將花瓣數或螺旋數對應到正確的索引。最可靠的做法是:先計算你在自然界觀察到的數量,再將該數字與一份以精確算術產生的索引式費氏數列對照參考。費氏數列產生器(Fibonacci Sequence Generator)會在你的瀏覽器中使用 BigInt 算術產生一份完整的零起始清單,涵蓋 F(0) 到 F(999),因此從單一花瓣數到龐大的螺旋總數,都能對應到正確的索引。這份可直接複製的本機清單,正是將隨意觀察轉化為已驗證觀察的關鍵。

how to find fibonacci sequence in nature
在自然界中尋找費氏數列並加以驗證

費氏數列在自然界中的出現位置

最可靠的觀察對象,是那些以相同的重複單位繞著中心生長的結構。費氏數列常見於三大類自然物件中:

  • 花瓣:花瓣數常對應到較小的費氏數。三、五、八、十三、二十一,以及更高的數字如三十四、五十五、八十九,都會出現在不同物種上。
  • 種子與鱗片的螺旋:松果、鳳梨與向日葵花盤會將種子或鱗片排列成兩組相互交錯的螺旋,一組順時針旋轉,另一組逆時針旋轉。這兩組螺旋的數目幾乎總是序列中相鄰的兩個數。
  • 枝條與葉片的排列:莖、葉脈與樹枝傾向以黃金角度(golden angle)間隔配置新生的部分,而黃金角度與連續費氏數的比值密切相關。

這些規律屬於觀察結果,並非絕對保證。不同物種與個體間的變異屬正常現象,單一標本差一個數字並不會推翻整體趨勢。當你並排比較大量標本,並關注最常出現的數量而非極端值時,這個規律會最為明顯。

找到費氏規律時如何計數

一致且固定的計數方法,比任何計算器都重要。不同的起算位置與方向會產生不同的數字,而這些數字中通常只有一個會與參考清單上的費氏數吻合。

  1. 選定單一的觀察單位。對花瓣而言,只數最外圈的花瓣,不要算入內層的變形花瓣或下方的萼片。對種子螺旋而言,一次只數一個方向,不要同時兩邊都算。
  2. 標記起算點。如果你往內多算了一列,數字就會改變,所以請挑選最明顯的邊緣(一片破損的花瓣、一顆外露的種子、一片突出的鱗片)並固定使用同一基準。
  3. 只沿一個方向計數。對螺旋來說,選定順時針或逆時針其一,一直數回到同一條起算線。兩個相反方向的螺旋數應是序列中相鄰的兩個費氏數,而不是同一個數字出現兩次。
  4. 將計數結果記錄為單一整數。花瓣數容易記住(3、5、8、13、21)。螺旋數則高得多(21、34、55、89、144),最好在開始查找之前先寫下來。
  5. 與參考清單比對。一旦取得一個數字,下一步就是確認它在精確的費氏數參考清單中位於預期的索引位置。

產生一份精確的參考清單以驗證你的觀察

確認你所計數結果最簡單的方式,就是與一份依據NIST DLMF §24.15(iv)所採用的標準零起始定義所產生、並以OEIS A000045收錄的索引式清單進行比對。費氏數列產生器會在你的瀏覽器中使用精確的 BigInt 算術建構這份清單,因此即使是像 F(100) 或 F(500) 這樣大的索引,也會以完整的十進位字串顯示,而非四捨五入後的近似值。

下表說明一份索引式參考清單如何與你在戶外觀察到的現象對應。

你在自然界觀察到的現象 產生器所提供的對應內容 它的助益
單一朵花的花瓣數為 3、5 或 8 索引清單中的 F(4) = 3、F(5) = 5、F(6) = 8 確認該數字屬於費氏數,並顯示其零起始的索引。
一朵向日葵在相反方向上分別有 34 與 55 條螺旋 相鄰兩列的 F(9) = 34 與 F(10) = 55 讓你能確認兩個相反方向的螺旋數是序列中相鄰的兩個費氏數。
一個松果具有 8 與 13 條螺旋 F(6) = 8 與 F(7) = 13 同時可見 快速確認常見的 8 與 13 配對。
數量達到 144 或更高的龐大螺旋總數 精確的十進位數值,最高至 F(999) BigInt 算術能完整保留每一位數,避免一般四捨五入造成的失真。
  1. 在瀏覽器中開啟費氏數列產生器,並輸入介於 1 到 1,000 之間的項數。輸入一項時只會回傳 F(0);輸入十項時則會回傳 F(0) 到 F(9)。
  2. 產生數列並閱讀摘要列。摘要列會同時顯示已產生的項數與最終索引,因此你不會迷失目前已到達哪個 F(n)。
  3. 在輸出中掃描對應到你觀察結果的索引。每一列的格式為 F(索引) = 十進位數值;因此對於一朵五瓣的毛茛,你會找的是 F(5) = 5;對於一朵三十四條螺旋的向日葵,則是 F(9) = 34。
  4. 如需保留書面紀錄,請複製結果。可使用複製功能取得以換行分隔的精確清單,或在無法存取剪貼簿時手動選取可見的文字。

若讀者希望對零起始的定義有更深入的概念性說明,從 F(0) 開始的費氏數列概念會解釋為何 0 的種子項至關重要,以及遞迴關係如何建構每一個數字。

為何精確清單勝過腦中默背

對於較小的索引,數列容易記住:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144。超過這個範圍,心算很快就會失效。以下是使用遞迴關係 F(n) = F(n-1) + F(n-2) 對 F(6) 進行逐步驗算的範例:

  • F(0) = 0
  • F(1) = 1
  • F(2) = F(1) + F(0) = 1
  • F(3) = F(2) + F(1) = 2
  • F(4) = F(3) + F(2) = 3
  • F(5) = F(4) + F(3) = 5
  • F(6) = F(5) + F(4) = 8

到了 F(10),數值為 55;到了 F(20),數值為 6,765;到了 F(50),數值已有超過十位數。標準 JavaScript 的 Number 型別在超過 F(78) 之後就會喪失精確的整數精度,因此任何超過該門檻的心算結果,都可能在不知情的狀況下被四捨五入。產生器則透過將每個數值以 BigInt 儲存並以純十進位文字輸出來規避這個問題,這也是它在驗證成熟松果或大型向日葵花盤中龐大的螺旋數時值得信賴的原因。

產生器無法為你確認的事項

這套工具是參考清單,而非生物學研究。它不會幫你測量向日葵花盤、繪製螺旋、判斷哪些螺旋應算入,也不會告訴你某朵雛菊是否屬於「費氏雛菊」。它同樣不會自行判斷你所觀察到的數字是否屬於此數列、不會將數值做質因數分解、不會計算黃金比例,也不會宣稱數字吻合就證明了某項自然法則。請用它來確認數字本身;而要用田野指南、顯微鏡或經同儕審核的研究來確認生物學的部分。

「讀出」螺旋與「計算」螺旋的差別

許多人看到鸚鵡螺殼或向日葵中的螺旋形狀,便直接假設螺旋本身就是費氏特徵。其實相關的數字並非那條曲線,而是該螺旋圖案中臂的數量。一個向日葵花盤通常呈現兩組方向相反的螺旋,這兩組螺旋的數量是相鄰的費氏數。如果你數出一個方向是 21 條螺旋、另一方向是 34 條,兩者都屬於此數列,分別位於 F(8) 與 F(9)。如果你數出的是 22 與 35,那代表你在這個標本上漏掉了規律;但該物種在平均情況下仍遵循這項規律。

同樣的謹慎態度也適用於松果。單一松果很少剛好顯示完美的 8 與 13 兩組數量,但同一棵樹上的許多松果,其平均配對會落在序列中相鄰的位置。請將每一次觀察視為單一的資料點,並將參考清單視為字典。對上數字是簡單的一步。至於為何自然界以此方式排列,則是另一個獨立問題,任何數字產生器都無法回答。

延伸閱讀:從項數產生費氏數列