斐波那契數列 問題分析及運用(兔子繁殖問題)

2021-09-27 01:54:28 字數 2641 閱讀 4755

斐波那契數列(fibonacci sequence),又稱**分割數列,因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」。具體是這樣乙個數列:1、1、2、3、5、8、13、21、34、……可以定義為以下關係:

當n>1時,這個數列第n項的值是前兩項之和

由 fibonacci 定義可得數列可遞迴地計算如下:

int fibonacci

(int n)

int fib

(int n)

return result;

}

由定義可推導出通項公式:

方法1:待定係數法構造等比數列(初等代數解法)

設常數 r , s ,使得

f( n ) - r * f(n - 1) = s * [f(n - 1) - r * f(n - 2)]

則有 r + s = 1,- r * s = 1

當 n >= 3時,有

聯立以上 n - 2 個式子可得:

可化簡且進一步轉換為:

(顯然這是乙個以 s^(n - 1) 為首項,以r^(n - 1)為末項,r / s 為公比的等比數列的各項的和)

方法2:待定係數法構造等比數列(初等代數解法)

方法3:母函式法

此處只詳細解釋方法一

從上述通項公式,我們可以找到很熟悉的數字

r = - ([5 ^ (1 / 2) - 1] / 2 近似等於0.618

找出幾個資料,求出前一項與後一項的比值:

1÷1=1

1÷2=0.5

2÷3=0.666

3÷5=0.6

5÷8=0.625

……144÷233=0.618025

……46368÷75025=0.6180339886

……容易得出比值越來越接近0.618,即**比

這個關係可容易證得:

f(n) + f(n + 1) = f(n + 2)

兩邊同時除以 f(n + 1),可得:

f(n) / f(n + 1) + 1 = f(n + 2) / f(n + 1)

設lim [f(n) / f(n + 1)] = lim [f(n + 1) / f(n + 2)] = x

即有 x + 1 = 1 / x

易得 x = [5 ^ (1 / 2) - 1] / 2 = 0.618

斐波那契數亦是經常出現在我們的生活中:

例一:

如圖,將數列關係轉為正方形邊長問題,可得出以上具有美感的和海螺的紋路類似,自然界中常見的松果、向日葵等的花瓣、果實排列都可以找到類似的規律

例二:求矩形面積:

如圖,矩形的長寬變化為斐波那契數列,可以得:

正方形面積之和可以轉換成求矩形的面積

例三:關於斐波那契數列對於數的整除

每2個連續的數中有且只有乙個被2整除,

每3個連續的數中有且只有乙個被3整除,

每4個連續的數中有且只有乙個被5整除,

每5個連續的數中有且只有乙個被8整除,

……每n個連續的數中有且只有乙個被f(n)整除

例四:兔子問題

被稱為兔子數列的斐波那契數列,解決的是乙個關於兔子繁殖的問題:

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

經過對題目的分析,可以得到兔子的繁殖情況:

經過月數12

3456

78910

1112

幼仔對數10

1123

581321

3455

成兔對數01

1235

8132134

5589

總體對數11

2358

1321

3455

89144

由上表可以得出以下**來求得兔子在一段時間後的對數:

int rabbit

(int month)

return num;

}

兔子生兔子問題 斐波那契數列

題目 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子。假如兔子都不死,要求輸出一年內兔子的數量是多少。1 1 2 3 5 8 如下 兔子問題 斐波那契 public class homework05 static intfab int month stati...

java兔子問題(斐波那契數列)

題目 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子 假如兔子都不死,問每個月的兔子總數為多少?斐波那契數列,沒乙個值都等於前兩個值之和 author gkf46762 public class rabbit public static int g...

斐波那契數列 兔子繁殖問題

古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第3個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?演算法分析 假設給兔子的對數編號 第乙個月 1 sum 1 第二個月 1 sum 1 第三個月 1生2,sum 2 第四個月 1生3,2,sum 3 第五個月...