斐波拉契數列
1 兔子繁殖問題
從前有一對長壽的兔子,他們每一個月生一對小兔子,新生的小兔子兩個月就長大了,在第二個月的月底就開始生他們的下一代小兔子,這樣一代一代生下去。求解兔子每月增長的數量的數列。
相信很多人一眼就能看出是一個斐波拉契數列,然後立馬抽象成數學公式:
但是總困繞着我一個問題:怎麼從實際場景去理解這個規律呢?
從題目中很自然得出這樣一個結論:每個月的兔子數量由具有繁殖能力的老兔子、剛生下的新兔子、滿一個月的兔子,這三部分組成。
從圖中我們可以得出以下結論:
- 在每月中老兔子繁殖產生新兔子(每月中老兔子的數量等於新兔子的數量)
- 滿一個月的兔子在下個月會變成老兔子(上個月老兔子的數量加上滿一個月兔子的數量等於下一個月老兔子的數量)
- 上個月的新兔子在下個月會變成滿一個月的兔子(上個月新兔子的數量等於下個月滿一個月兔子的數量)
月的新兔子數量等於當月老兔子數量,月的老兔子數量等於月的老兔子數量加上月的滿一個月兔子的數量,而每個月老兔子的數量等於新兔子的數量,且月的滿一個月的兔子數量等於月新兔子的數量。所以:月的新兔子數量等於月的新兔子數量加上月新兔子數量。
2 爬樓梯問題
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
相信很多人都知道這也是一個斐波拉契數列。抽象成數學公式:
利用實際場景去理解:爬 n 階樓梯時,最後一步要麼跨1個臺階要麼跨2個臺階。