|
一句話先回答問題:因為斐波那契數(shù)列在數(shù)學和生活以及自然界中都非常有用。 下面我就盡我所能,講述一下斐波那契數(shù)列。 一、起源和定義 斐波那契數(shù)列最早被提出是印度數(shù)學家Gopala,他在研究箱子包裝物件長度恰好為1和2時的方法數(shù)時首先描述了這個數(shù)列。也就是這個問題: 有n個臺階,你每次只能跨一階或兩階,上樓有幾種方法? 而最早研究這個數(shù)列的當然就是斐波那契(Leonardo Fibonacci)了,他當時是為了描述如下情況的兔子生長數(shù)目:
這個數(shù)列出自他赫赫有名的大作《計算之書》(沒有維基詞條,坑),后來就被廣泛的應(yīng)用于各種場合了。這個數(shù)列是這么定義的: The On-Line Encyclopedia of Integer Sequences? (OEIS?)序號為A000045 - OEIS (注意,并非滿足第三條的都是斐波那契數(shù)列,盧卡斯數(shù)列(A000032 - OEIS)也滿足這一特點,但初始項定義不同) 二、求解方法 講完了定義,再來說一說如何求對應(yīng)的項。斐波那契數(shù)列是編程書中講遞歸必提的,因為它是按照遞歸定義的。所以我們就從遞歸開始講起。 1.遞歸求解 這是編程最方便的解法,當然,也是效率最低的解法,原因是會出現(xiàn)大量的重復計算。為了避免這種情況,可以采用遞推的方式。 2.遞推求解 遞推的方法可以在O(n)的時間內(nèi)求出Fib(n)的值。但是這實際還是不夠好,因為當n很大時這個算法還是無能為力的。接下來就要來講一個有意思的東西:矩陣。 3.矩陣遞推關(guān)系 學過代數(shù)的人可以看出,下面這個式子是成立的: 不停地利用這個式子迭代右邊的列向量,會得到下面的式子: 這樣,問題就轉(zhuǎn)化為如何計算這個矩陣的n次方了,可以采用快速冪的方法。快速冪_百度百科是利用結(jié)合律快速計算冪次的方法。比如我要計算 4.通項公式 無論如何,對于一個數(shù)列,我們都是希望可以建立 與n的關(guān)系,也就是通項公式,而用不同方法去求解通項公式也是很有意思的。(1)構(gòu)造等比數(shù)列 設(shè) ,化簡得 ,比較系數(shù)得 ,解得 ,![]() 由于 ![]() 故有 ,設(shè) .則有 ,設(shè) ,解得 ,即{ }是等比數(shù)列。這樣就有![]() 到了現(xiàn)在,把上述解出的結(jié)果全部帶入上式,稍作變形,我們就可以寫出斐波那契數(shù)列的通項公式了 ![]() 這個方法還是比較麻煩的,但是非?;A(chǔ)。事實上還有其他更簡單的方法。 (2)線性代數(shù)解法 這個解法首先用到 公式,如果可以找到矩陣 使得 為對角陣,我們就可以求出通項。下面需要一些高等代數(shù)知識,沒學過的可直接跳過。首先令 ,解得兩個特征根![]() 兩個特征向量為 則而解出 ,中間矩陣的n次方可以直接求出來:然后可以輕易得到通項公式,上邊已經(jīng)給出,這里不再贅述。 (3)特征方程解法 通過方法(2),我們可以推導出一般的線性遞推數(shù)列的通項求解方法,也就是特征方程法。我們可以發(fā)現(xiàn),對于這種數(shù)列,通項總是可以表示為 的形式,因此可以直接利用已知項求解 , 。具體做法如下:a.由遞推數(shù)列構(gòu)造特征方程 ,解出兩個特征值 。b.帶入 ,列出如下方程:![]() ![]() 解得 這樣直接寫出通項公式,是比較簡單的做法。(4)母函數(shù)法(此方法涉及組合數(shù)學知識) 設(shè)斐波那契數(shù)列的母函數(shù)為 ,即![]() ![]() ![]() ![]() 解得 ![]() 再由冪級數(shù)展開公式 ……合并同類項并與 的系數(shù)比較即可。到這里,求解斐波那契數(shù)列通項的方法就說的差不多了。無論是計算機求解還是數(shù)學推導,都體現(xiàn)出了非常多的技巧。而斐波那契數(shù)列的許多特性,就更加有意思了。 三、斐波那契數(shù)列的數(shù)學性質(zhì) 1.與黃金比的關(guān)系 由通項公式,求相鄰兩項的商的極限,結(jié)果是黃金比,所以斐波那契數(shù)列又稱為黃金比數(shù)列。斐波那契數(shù)列和黃金比還和一個有趣的數(shù)學概念——連分數(shù)有關(guān): 2.一些簡單的規(guī)律 (1)任意連續(xù)四個斐波那契數(shù),可以構(gòu)造出一個畢達哥拉斯三元組。如取1,1,2,3. 中間兩數(shù)相乘再乘2 ==》 4 外層2數(shù)乘積==》3 中間兩數(shù)平方和==》5 得到3,4,5. 下一組是5,12,13,,有興趣的讀者可以再試著推一推,證明也是容易的。 (2)整除性 每3個連續(xù)的斐波那契數(shù)有且只有一個被2整除, 每4個連續(xù)的斐波那契數(shù)有且只有一個被3整除, 每5個連續(xù)的斐波那契數(shù)有且只有一個被5整除, 每6個連續(xù)的斐波那契數(shù)有且只有一個被8整除, 每7個連續(xù)的斐波那契數(shù)有且只有一個被13整除, ………… 每n個連續(xù)的斐波那契數(shù)有且只有一個被 (3)一些恒等式 3.楊輝三角中的斐波那契數(shù)列 如圖所示,每條斜線上的數(shù)的和就構(gòu)成斐波那契數(shù)列。
4.相關(guān)數(shù)列:盧卡斯(Lucas)數(shù)列 盧卡斯數(shù)列的定義除了第0項為2之外,與斐波那契數(shù)列完全一致。即 其通項公式為: 盧卡斯數(shù)列和斐波那契數(shù)列有這些關(guān)系: ![]() ![]() ![]() ![]() ![]() 5.組合數(shù)學 (1)一些恒等式 (2)同余特性 ![]() ![]() 當p為大于5的素數(shù)時,有: ![]() ![]() ![]() 其中 斐波那契數(shù)列還有許許多多的性質(zhì),我就不再一一介紹了。跑題了這么久,終于開始要真正回答問題了:斐波那契數(shù)列有什么用? 四、斐波那契數(shù)列的應(yīng)用 1.算法 a.斐波那契堆
b.歐幾里得算法的時間復雜度 歐幾里得算法是求解兩個正整數(shù)最大公約數(shù)的算法,又稱輾轉(zhuǎn)相除法。代碼如下: 在最壞的情況下,我們可以證明,若a較小,需要計算的次數(shù)為n,則 .雖然說一般分析的時候會當成對數(shù)階,但數(shù)論最常用的歐幾里得算法竟然與斐波那契數(shù)列有關(guān),也確實是很讓人吃驚呢。2.物理學:氫原子能級問題
3.自然界:植物的生長 科學家發(fā)現(xiàn),一些植物的花瓣、萼片、果實的數(shù)目以及排列的方式上,都有一個神奇的規(guī)律,它們都非常符合著名的斐波那契數(shù)列。例如:薊,它們的頭部幾乎呈球狀。在下圖中,你可以看到兩條不同方向的螺旋。我們可以數(shù)一下,順時針旋轉(zhuǎn)的(和左邊那條旋轉(zhuǎn)方向相同)螺旋一共有13條,而逆時針旋轉(zhuǎn)的則有21條。此外還有菊花、向日葵、松果、菠蘿等都是按這種方式生長的。 還有菠蘿、松子等,也都符合這個特點,一般會出現(xiàn)34,55,89和144這幾個數(shù)字。 最后上一張“斐波那契樹”的圖片: 是的,這玩意就長這樣,這種植物是存在的。 4.波浪理論與股市 這個答主不懂,大家可自行閱讀文章波浪理論斐波那契數(shù)列與黃金分割率。 不過波浪的形狀確實符合下邊要說的斐波那契螺旋: 5.斐波那契螺旋 斐波那契螺旋又稱黃金螺旋,在自然界中廣泛存在。如圖是一個邊長為斐波那契數(shù)列的正方形組成的矩形。 (加一句:看著這個圖,是不是能發(fā)現(xiàn)是顯而易見的?) 這樣連起來就是斐波那契螺旋了 貝殼螺旋輪廓線 向日葵的生長 神奇的花 6.建筑學 7.據(jù)說一個小男孩參考斐波那契數(shù)列發(fā)明了太陽能電池樹: 一名13歲的男孩根據(jù)斐波那契數(shù)列發(fā)明了太陽能電池樹,其產(chǎn)生的電力比太陽能光伏電池陣列多20-50%。斐波那契數(shù)列類似從0和1開始,之后的數(shù)是之前兩數(shù)的和,如0,1,1,2,3,5,8,13,21...Aidan Dwye在觀察樹枝分叉時發(fā)現(xiàn)它的分布模式類似斐波那契數(shù)列,這是大自然演化的一種結(jié)果,可能有助于樹葉進行光合作用。 8.斐波那契螺旋形的搖椅 媽媽搖椅是設(shè)計師Patrick Messier為自己的妻子兼合作伙伴Sophie Fournier設(shè)計的,當時他們剛有了第一個寶寶。 五、數(shù)學上的擴展 (1)廣義斐波那契數(shù)列 定義: ,數(shù)列 滿足:其通項為: 當 時即為斐波那契數(shù)列。(2)反斐波那契數(shù)列 定義: ![]() 反斐波那契數(shù)列相鄰項比值的極限為 。(3)巴都萬數(shù)列(A000931 - OEIS) 斐波那契數(shù)列可以刻畫矩形,而巴都萬數(shù)列則刻畫的是三角形。其定義如下: (4)未解之謎:角谷猜想 對一個正整數(shù),若為奇數(shù)則乘3加1,若為奇數(shù)則除以2,通過有限次這樣的操作,能否使得該數(shù)變成1? 這個猜想和斐波那契數(shù)列又很大關(guān)系,具體的可以看角谷猜想的斐波那契數(shù)列現(xiàn)象。 六、總結(jié) 斐波那契數(shù)列是各個學科中都出現(xiàn)的小滑頭,它許多漂亮的性質(zhì)讓我們著迷。上文我所描述的這些只是它的冰山一角,權(quán)當拋磚引玉。大家讀完了我的答案,還可以再結(jié)合自己的專業(yè)去看一些相關(guān)的資料,更好的去了解這個有趣的數(shù)列。 七、參考文獻 |
|
|