python使用遞歸實(shí)現(xiàn)斐波那契數(shù)列的示例詳解
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波納契數(shù)列以如下被以遞推的方法定義:F(1)=1,F(xiàn)(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
使用python如何求為n時(shí)的值呢?
def flag(b):
if b < 0:
return "請(qǐng)傳入大于0的數(shù)值!"
if b == 0:
return 0
if b == 1:
return 1
if b == 2:
return 1
return flag(b-1) + flag(b-2)
print(flag(-1))
print(flag(0))
print(flag(2))
print(flag(3))
print(flag(10))
打印結(jié)果:
請(qǐng)傳入大于0的數(shù)值!
0
1
2
55
如果實(shí)現(xiàn)打印出的值為:1,1,2,3,5,8,13,21,34,……該如何實(shí)現(xiàn)呢?
#默認(rèn)值帶出小于或等于2的值
resList = [0,1,1]
def flag(n):
#遞歸到最后,因?yàn)閒lag(n-1) + flag(n-2)同時(shí)執(zhí)行,n的值為1或2,直接return結(jié)果1
if n == 1 or n == 2:
return 1
a = flag(n-1) + flag(n-2)
#判斷如果追加的值小于集合最后一個(gè)值時(shí),則不添加值
if(a > resList[-1]):
resList.append(a)
return a
n = 10
#因?yàn)閞esList集合有默認(rèn)值,所以對(duì)于n小于2時(shí),不執(zhí)行函數(shù) flag(),直接在外部處理
if n < 0:
print("n不可以小與0")
elif n == 0:
print("0")
elif n == 1:
print("0,1")
else:
flag(n)
print(resList)
執(zhí)行結(jié)果
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
對(duì)于后面這個(gè)實(shí)現(xiàn),只是我個(gè)人的思路,應(yīng)該有更簡(jiǎn)單的做法,歡迎大家分享。
以上就是python使用遞歸實(shí)現(xiàn)斐波那契數(shù)列的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于python遞歸實(shí)現(xiàn)斐波那契數(shù)列的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解python架構(gòu)?PyNeuraLogic超越Transformers
這篇文章主要為大家介紹了python使用?PyNeuraLogic超越Transformers示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
python基于watchdog庫(kù)實(shí)現(xiàn)文件系統(tǒng)監(jiān)控
Watchdog庫(kù)是Python中一個(gè)用于監(jiān)控文件系統(tǒng)變化的第三方庫(kù),它能夠?qū)崟r(shí)監(jiān)測(cè)文件或目錄的創(chuàng)建,修改,刪除等操作,下面我們來看看如何利用watchdog實(shí)現(xiàn)文件系統(tǒng)監(jiān)控吧2025-04-04
Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法
這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法,涉及Python基于libxml2dom模塊操作html頁面元素的技巧,需要的朋友可以參考下2015-06-06
python中enumerate() 與zip()函數(shù)的使用比較實(shí)例分析
這篇文章主要介紹了python中enumerate()與zip()函數(shù)的使用比較,結(jié)合實(shí)例形式分析了enumerate()與zip()函數(shù)的功能、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
使用Python實(shí)現(xiàn)MapReduce的示例代碼
MapReduce是一個(gè)用于大規(guī)模數(shù)據(jù)處理的分布式計(jì)算模型,最初由Google工程師設(shè)計(jì)并實(shí)現(xiàn)的,Google已經(jīng)將完整的MapReduce論文公開發(fā)布了,本文給大家介紹了使用Python實(shí)現(xiàn)MapReduce的示例代碼,需要的朋友可以參考下2024-05-05
Python實(shí)現(xiàn)簡(jiǎn)易的圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)易的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

