迴圈斐波那契數列 斐波那契數列應用

2021-10-15 00:25:29 字數 1087 閱讀 4662

### 什麼是斐波那契數列

斐波那契數列指的是這樣乙個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

這個數列從第3項開始,每一項都等於前兩項之和

### 台階問題

有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?

這就是乙個斐波那契數列:登上第一級台階有一種登法;登上兩級台階,有兩種登法;登上**台階,有三種登法;登上四級台階,有五種登法……

1,2,3,5,8,13……所以,登上十級,有89種走法。

### 兔子問題

斐波那契數列又因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為「兔子數列」。

一般而言,兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,那麼一年以後可以繁殖多少對兔子?

我們不妨拿新出生的一對小兔子分析一下:

第乙個月小兔子沒有繁殖能力,所以還是一對

兩個月後,生下一對小兔對數共有兩對

三個月以後,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對

### 演算法實現

function fibonacci($num) else if ($num == 2) else else if (num == 2) else {

return test(num - 1) + test(num -2)

### 演算法複雜度

- 遞迴是最容易想到和實現的方式;但是遞迴的時間複雜度是隨著n以指數方式遞增的。

- 使用迴圈來實現

- 更簡單的是從下往上進行計算

function test($num)

if($num == 1 ){

return 1;

if($num == 2 ){

return 1;

$one = 1;

$two = 0;

$res = 0;

for($i = 2; $i<=$num; $i++){

$res = $one + $two;

$two = $one;

$one = $res;

return $res;

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

斐波那契數列

1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...

斐波那契 數列

費波那西數列 義大利語 successione di fibonacci 又譯費波拿契數 斐波那契 數列 費氏數列 分割數列。在數學上,費波那西數列是以遞迴的方法來定義 用文字來說,就是費波那西數列由0和1開始,之後的費波那西係數就由之前的兩數相加。首幾個費波那西係數是 oeis a000045 0...