在第乙個月有一對剛出生的小兔子,在第二個月小兔子變成大兔子並開始懷孕,第三個月大兔子會生下一對小兔子,並且以後每個月都會生下一對小兔子。 如果每對兔子都經歷這樣的出生、成熟、生育的過程,並且兔子永遠不死,那麼兔子的總數是如何變化的?
我們不妨先來看個圖:
第乙個月只有一對兔寶寶,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 輸出只...