python中斐波那契係數實現的幾種方法

2021-09-17 00:16:40 字數 1100 閱讀 9834

在第乙個月有一對剛出生的小兔子,在第二個月小兔子變成大兔子並開始懷孕,第三個月大兔子會生下一對小兔子,並且以後每個月都會生下一對小兔子。 如果每對兔子都經歷這樣的出生、成熟、生育的過程,並且兔子永遠不死,那麼兔子的總數是如何變化的?

我們不妨先來看個圖:

第乙個月只有一對兔寶寶,1對兔子。

第二個月兔寶寶變成大兔子,1對兔子。

第三個月大兔子生了一對兔寶寶,一大一小2對兔子。

第四個月大兔子繼續生一對兔寶寶,小兔子變成大兔子。兩大一小3對兔子。

我們發現會發現以下幾個規律:

前乙個月的大兔子對數就是下乙個月的小兔子對數。

前乙個月的大兔子和小兔子對數的和就是下個月大兔子的對數。

按照這個**,我們會發現無論是小兔子對數、大兔子對數還是總對數,除了最初幾個數字不一樣之外,後面都是按照1、1、2、3、5、8、13…變化的,這個數列就稱為兔子數列或者斐波那契數列。

兔子數列最大的特點就是前兩項之和等於後一項,比如1+1=2、1+2=3、2+3=5、3+5=8、5+8=13…

這種式子稱為遞推式,也就是說可以從前面一項或幾項,計算出後面一項的式子。再結合前兩項a1=a2=1,就可以得到後面任意一項了

用python實現斐波那契的幾種方法

一、遞迴函式:

def fbnq(n):#斐波拉契數

if n==1 or n==2:

return 1

else:

return fbnq(n-1)+fbnq(n-2)

for i in range(1,13):

print('第%d個月的兔子數是:'%i,fbnq(i))

二、生成器:

def fbnq(n):

a,b=0,1

i=0while i

a,b=b,a+b

yield a

i+=1

f=fbnq(10)

for x in f:

print(x)

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

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

Python中斐波那契數列實現

usr bin env python coding utf 8 date 2017 04 25 16 04 19 author xiaoke import os 題目 說有一對可愛的兔子,出生後的第三個月開始,每一月都會生一對小兔子。當小兔子長到第三個月後,也會每個月再生一對小小兔子.要求 假設條件...

python 斐波那契?

description 給出乙個數列的遞推公式,希望你能計算出該數列的第n個數。遞推公式如下 f n f n 1 f n 2 f n 3 其中,f 1 2,f 2 3,f 3 5.很熟悉吧,可它貌似真的不是斐波那契數列呢,你能計算出來嗎?input 輸入只有乙個正整數n n 4 output 輸出只...