




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
一句話先答復下列問題:因為斐波那契數列在數學和生活以及自然界中都非常有用。
下面我就盡我所能,講述一下斐波那契數列。
一、起源和定義
斐波那契數列最早被提出是印度數學家Gopala,他在研究箱子包裝物件長度恰好為1和2時的方法數時首先描述了這個數列。也就是這個問題:
有n個臺階,你每次只能跨一階或兩階,上樓有幾種方法?
而最早研究這個數列的當然就是斐波那契〔LeonardoFibonacci〕了,他當時是為了描述如下情況的兔子生長數目:
第一個月初有一對剛誕生的兔子第二個月之后〔第三個月初〕它們可以生育每月每對可生育的兔子會誕生下一對新兔子兔子永不死去
這個數列出自他赫赫有名的大作《計算之書》〔沒有維基詞條,坑〕,后來就被廣泛的應用于各種場合了。這個數列是這么定義的:
TheOn-LineEncyclopediaofIntegerSequences?(OEIS?)序號為A000045-OEIS
〔注意,并非滿足第三條的都是斐波那契數列,盧卡斯數列〔A000032-OEIS〕也滿足這一特點,但初始項定義不同〕
二、求解方法
講完了定義,再來說一說如何求對應的項。斐波那契數列是編程書中講遞歸必提的,因為它是按照遞歸定義的。所以我們就從遞歸開始講起。
1.遞歸求解
intFib(intn){returnn<2?1:(Fib(n-1)+Fib(n-2));}
這是編程最方便的解法,當然,也是效率最低的解法,原因是會出現大量的重復計算。為了防止這種情況,可以采用遞推的方式。
2.遞推求解
intFib[1000];Fib[0]=0;Fib[1]=1;for(inti=2;i<1000;i++)Fib[i]=Fib[i-1]+Fib[i-2];
遞推的方法可以在O(n)的時間內求出Fib(n)的值。但是這實際還是不夠好,因為當n很大時這個算法還是無能為力的。接下來就要來講一個有意思的東西:矩陣。
3.矩陣遞推關系
學過代數的人可以看出,下面這個式子是成立的:不停地利用這個式子迭代右邊的列向量,會得到下面的式子:這樣,問題就轉化為如何計算這個矩陣的n次方了,可以采用快速冪的方法。快速冪_百度百科是利用結合律快速計算冪次的方法。比方我要計算,我們知道,而可以通過來計算,而可以通過計算,以此類推。通過這種方法,可以在O〔lbn〕的時間里計算出一個數的n次冪。快速冪的代碼如下:intQpow(inta,intn){intans=1;while(n){if(n&1)ans*=a;a*=a;n>>=1;}returnans;}將上述代碼中的整型變量a變成矩陣,數的乘法變成矩陣乘法,就是矩陣快速冪了。比方用矩陣快速冪計算斐波那契數列:#include<cstdio>#include<iostream>usingnamespacestd;constintMOD=10000;structmatrix//定義矩陣結構體{intm[2][2];}ans,base;matrixmulti(matrixa,matrixb)//定義矩陣乘法{matrixtmp;for(inti=0;i<2;++i){for(intj=0;j<2;++j){tmp.m[i][j]=0;for(intk=0;k<2;++k)tmp.m[i][j]=(tmp.m[i][j]+a.m[i][k]*b.m[k][j])%MOD;}}returntmp;}intfast_mod(intn)//求矩陣base的n次冪{base.m[0][0]=base.m[0][1]=base.m[1][0]=1;base.m[1][1]=0;ans.m[0][0]=ans.m[1][1]=1;//ans初始化為單位矩陣ans.m[0][1]=ans.m[1][0]=0;while(n){if(n&1)//實現ans*=t;其中要先把ans賦值給tmp,然后用ans=tmp*tans=multi(ans,base);base=multi(base,base);n>>=1;}returnans.m[0][1];}intmain(){intn;while(scanf("%d",&n)&&n!=-1){printf("%d\n",fast_mod(n));}return0;}4.通項公式無論如何,對于一個數列,我們都是希望可以建立與n的關系,也就是通項公式,而用不同方法去求解通項公式也是很有意思的。〔1〕構造等比數列設,化簡得,比擬系數得,解得,由于故有,設.那么有,設,解得,即{}是等比數列。這樣就有到了現在,把上述解出的結果全部帶入上式,稍作變形,我們就可以寫出斐波那契數列的通項公式了這個方法還是比擬麻煩的,但是非常根底。事實上還有其他更簡單的方法。〔2〕線性代數解法這個解法首先用到公式,如果可以找到矩陣使得為對角陣,我們就可以求出通項。下面需要一些高等代數知識,沒學過的可直接跳過。首先令,解得兩個特征根兩個特征向量為那么而解出,中間矩陣的n次方可以直接求出來:然后可以輕易得到通項公式,上邊已經給出,這里不再贅述。〔3〕特征方程解法通過方法〔2〕,我們可以推導出一般的線性遞推數列的通項求解方法,也就是特征方程法。我們可以發現,對于這種數列,通項總是可以表示為的形式,因此可以直接利用項求解,。具體做法如下:a.由遞推數列構造特征方程,解出兩個特征值。b.帶入,列出如下方程:解得這樣直接寫出通項公式,是比擬簡單的做法。〔4〕母函數法〔此方法涉及組合數學知識〕設斐波那契數列的母函數為,即解得再由冪級數展開公式……合并同類項并與的系數比擬即可。到這里,求解斐波那契數列通項的方法就說的差不多了。無論是計算機求解還是數學推導,都表達出了非常多的技巧。而斐波那契數列的許多特性,就更加有意思了。三、斐波那契數列的數學性質1.與黃金比的關系由通項公式,求相鄰兩項的商的極限,結果是黃金比,所以斐波那契數列又稱為黃金比數列。斐波那契數列和黃金比還和一個有趣的數學概念——連分數有關:2.一些簡單的規律〔1〕任意連續四個斐波那契數,可以構造出一個畢達哥拉斯三元組。如取1,1,2,3.中間兩數相乘再乘2==》4外層2數乘積==》3中間兩數平方和==》5得到3,4,5.下一組是5,12,13,,有興趣的讀者可以再試著推一推,證明也是容易的。〔2〕整除性每3個連續的斐波那契數有且只有一個被2整除,每4個連續的斐波那契數有且只有一個被3整除,每5個連續的斐波那契數有且只有一個被5整除,每6個連續的斐波那契數有且只有一個被8整除,每7個連續的斐波那契數有且只有一個被13整除,…………每n個連續的斐波那契數有且只有一個被整除.〔3〕一些恒等式3.楊輝三角中的斐波那契數列如下圖,每條斜線上的數的和就構成斐波那契數列。
即有4.相關數列:盧卡斯〔Lucas〕數列盧卡斯數列的定義除了第0項為2之外,與斐波那契數列完全一致。即其通項公式為:盧卡斯數列和斐波那契數列有這些關系:5.組合數學〔1〕一些恒等式〔2〕同余特性當p為大于5的素數時,有:其中斐波那契數列還有許許多多的性質,我就不再一一介紹了。跑題了這么久,終于開始要真正答復下列問題了:斐波那契數列有什么用?四、斐波那契數列的應用1.算法a.斐波那契堆斐波那契堆(Fibonacciheap)是計算機科學中最小堆有序樹的集合。它和二項式堆有類似的性質,可用于實現合并優先隊列。特點是不涉及刪除元素的操作有O(1)的平攤時間,用途包括稠密圖每次Decrease-key只要O(1)的平攤時間,和二項堆的O(lgn)相比是巨大的改良。斐波那契堆由一組最小堆構成,這些最小堆是有根的無序樹。可以進行插入、查找、合并和刪除等操作1〕插入:創立一個僅包含一個節點的新的斐波納契堆,然后執行堆合并2〕查找:由于用一個指針指向了具有最小值的根節點,因此查找最小的節點是平凡的操作。3〕合并:簡單合并兩個斐波納契堆的根表。即把兩個斐波納契堆的所有樹的根首尾銜接并置。4〕刪除〔釋放〕最小節點分為三步:查找最小的根節點并刪除它,其所有的子節點都參加堆的根表,即它的子樹都成為堆所包含的樹;需要查找并維護堆的最小根節點,但這耗時較大。為此,同時完成堆的維護:對堆當前包含的樹的度數從低到高,迭代執行具有相同度數的樹的合并并實現最小樹化調整,使得堆包含的樹具有不同的度數。這一步使用一個數組,數組下標為根節點的度數,數組的值為指向該根節點指針。如果發現具有相同度數的其他根節點那么合并兩棵樹并維護該數組的狀態。對當前堆的所有根節點查找最小的根節點。5〕降低一個點的鍵值:對一個節點的鍵值降低后,自鍵值降低的節點開始自下而上的迭代執行下述操作,直至到根節點或一個未被標記〔marked〕節點為止:如果當前節點鍵值小于其父節點的鍵值,那么把該節點及其子樹摘下來作為堆的新樹的根節點;其原父節點如果是被標記〔marked〕節點,那么也被摘下來作為堆的新樹的根節點;如果其原父節點不是被標記〔marked〕節點且不是根節點,那么其原父節點被加標記。如果堆的新樹的根節點被標記〔marked〕,那么去除該標記。6〕刪除節點:把被刪除節點的鍵值調整為負無窮小,然后執行“降低一個節點的鍵值”算法,然后再執行“刪除最小節點”算法。斐波那契堆b.歐幾里得算法的時間復雜度歐幾里得算法是求解兩個正整數最大公約數的算法,又稱輾轉相除法。代碼如下:intgcd(inta,intb){returnb?gcd(b,a%b):a;}在最壞的情況下,我們可以證明,假設a較小,需要計算的次數為n,那么.雖然說一般分析的時候會當成對數階,但數論最常用的歐幾里得算法竟然與斐波那契數列有關,也確實是很讓人吃驚呢。2.物理學:氫原子能級問題假定我們現在有一些氫氣原子,一個電子最初所處的位置是最低的能級〔Groundleverofenergy〕,屬于穩定狀態。它能獲得一個能量子或二個能量子〔Quantaofenergy〕而使它上升到第一能級或者第二能級。但是在第一級的電子如失掉一個能量子就會下降到最低能級,它如獲得一個能量子就會上升到第二級來。現在研究氣體吸收和放出能量的情形,假定最初電子是處在穩定狀態即零能級,然后讓它吸收能量,這電子可以跳到第1能級或第2能級。然后再讓這氣體放射能量,這時電子在1級能級的就要下降到0能級,而在第2能級的可能下降到0能級或者第1能級的位置去。電子所處的狀態可能的情形是:1、2、3、5、8、13、21…種。這是斐波那契數列的一部份。3.自然界:植物的生長科學家發現,一些植物的花瓣、萼片、果實的數目以及排列的方式上,都有一個神奇的規律,它們都非常符合著名的斐波那契數列。例如:薊,它們的頭部幾乎呈球狀。在下列圖中,你可以看到兩條不同方向的螺旋。我們可以數一下,順時針旋轉的〔和左邊那條旋轉方向相同〕螺旋一共有13條,而逆時針旋轉的那么有21條。此外還有菊花、向日葵、松果、菠蘿等都是按這種方式生長的。還有菠蘿、松子等,也都符合這個特點,一般會出現34,55,89和144這幾個數字。
最后上一張“斐波那契樹”的圖片:是的,這玩意就長這樣,這種植物是存在的。4.波浪理論與股市這個答主不懂,大家可自行閱讀文章波浪理論斐波那契數列與黃金分割率。不過波浪的形狀確實符合下邊要說的斐波那契螺旋:5.斐波那契螺旋斐波那契螺旋又稱黃金螺旋,在自然界中廣泛存在。如圖是一個邊長為斐波那契數列的正方形組成的矩形。〔加一句:看著這個圖,是不是能發現是顯而易見的?〕這樣連起來就是斐波那契螺旋了貝殼螺旋輪廓線向日葵的生長神奇的花6.建筑學7.據說一個小男孩參考斐波那契數列創造了太陽能電池樹:一名13歲的男孩根據斐波那契數列創造了太陽能電池樹,其產生的電力比太陽能光伏電池陣列多20-50%。斐波那契數列類似從0和1開始,之后的數是之前兩數的和,如0,1,1,2,3,5,8,13,21...AidanDwye在觀察樹枝分叉時發現它的分布模式類似斐波那契數列,這是大自然演化的一種結果,可能有助于樹葉進行光合作用。因此,Dwye猜測為什么不按照斐波那契數列排列太陽能電池?他設計了太陽能電池樹,發現它的輸出電力提高了20%,每天接受光照的時間延長了2.5小時。8.斐波那契螺旋形的搖椅媽媽搖椅是設計師PatrickMessier為自己的妻子兼合作伙伴SophieFournier設計的,當時他們剛有了第一個寶寶。當Sophie宣布自己懷孕時,她說想要一把搖椅,但發現沒有一把搖椅能滿足美觀舒適的標準,于是Patrick決定自己做一把。于是就有了這把媽媽搖椅。像是一個飄在空中的絲帶,由一片纖維玻璃做成,曲線服從斐波那契
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江省義烏市2024-2025學年物理高二下期末經典模擬試題含解析
- 重慶市江津區高2024-2025學年高二物理第二學期期末統考模擬試題含解析
- 新疆博爾塔拉蒙古自治州第五師中學2024-2025學年高二下數學期末質量檢測模擬試題含解析
- 浙江省杭十四中2025年生物高二第二學期期末教學質量檢測試題含解析
- 重慶市萬州龍駒中學2024-2025學年數學高二第二學期期末質量檢測模擬試題含解析
- 班主任學生德育與行為規范合同
- 成都房產交易風險防范合同
- 進步之星評選方案范文(18篇)
- 護理年終考試復習試題(一)
- 2025社團迎新活動策劃方案(7篇)
- DB32/T 4220-2022消防設施物聯網系統技術規范
- 車位轉讓合同協議書
- 合伙經營貨車輛協議書
- 2025年農村個人果園承包合同
- 湖北省武漢市2025屆高三年級五月模擬訓練試題數學試題及答案(武漢五調)
- 企業管理流程數字化轉型計劃
- 2025年數控技術專業畢業考試試題及答案
- MOOC 地下鐵道-中南大學 中國大學慕課答案
- 六西格瑪DMAIC案例(ppt-85頁)課件
- T∕CAGHP 070-2019 地質災害群測群防監測規范(試行)
- 年產50000噸檸檬酸發酵車間設計
評論
0/150
提交評論