首頁(yè)技術(shù)文章正文

斐波那契數(shù)列是什么?Python如何實(shí)現(xiàn)斐波那契數(shù)列?

更新時(shí)間:2021-01-18 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

斐波那契數(shù)列(Fibonacci sequence),又稱(chēng)黃金分割數(shù)列、因數(shù)學(xué)家萊昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱(chēng)為“兔子數(shù)列”。斐波那契數(shù)列指的是這樣一個(gè)數(shù)列 0, 1, 1, 2, 3, 5, 8, 13,特別指出:第0項(xiàng)是0,第1項(xiàng)是第一個(gè)1。從第三項(xiàng)開(kāi)始,每一項(xiàng)都等于前兩項(xiàng)之和。

下面介紹兩種通過(guò)python實(shí)現(xiàn)斐波那契數(shù)列的方法。

1、遞歸法:

def fs(n):
    assert n >= 0, "n > 0"
    if n <= 1:
        return n
    return fs(n-1)+fs(n-2)

# 獲得斐波那契數(shù)列,項(xiàng)數(shù)20
for i in range(1, 20):
    print(fs(i), end=' ')



2、遞推法

# 第一種寫(xiě)法
def fs_loop_for(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
    return a
    
    
# 獲得斐波那契數(shù)列,項(xiàng)數(shù)20
for i in range(20):
    print(fs_loop_for(i), end=' ')


# 第二種寫(xiě)法
def fs_loop_while(n):
    a, b = 0, 1
    while n > 0:
        a, b = b, a + b
        n -= 1
    return a
    


# 獲得斐波那契數(shù)列,項(xiàng)數(shù)20
for i in range(20):
    print(fs_loop_while(i), end=' ')


運(yùn)行結(jié)果:

1610956571880_斐波那契數(shù)列.png


猜你喜歡:

最新Python安裝圖文教程

Python隨機(jī)數(shù)函數(shù)詳細(xì)介紹

100以內(nèi)的質(zhì)數(shù)有哪些?用python如何獲?。?/a>

黑馬程序員Python開(kāi)發(fā)培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!