日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python實(shí)現(xiàn)求解斐波那契第n項(xiàng)的解法(包括矩陣乘法+快速冪)

瀏覽:160日期:2022-06-22 13:51:25

斐波那契數(shù)列

首先我們來(lái)定義一下斐波那契數(shù)列:

Python實(shí)現(xiàn)求解斐波那契第n項(xiàng)的解法(包括矩陣乘法+快速冪)

即數(shù)列的第0項(xiàng):

Python實(shí)現(xiàn)求解斐波那契第n項(xiàng)的解法(包括矩陣乘法+快速冪)

算法一:遞歸

遞歸計(jì)算的節(jié)點(diǎn)個(gè)數(shù)是O(2ⁿ)的級(jí)別的,效率很低,存在大量的重復(fù)計(jì)算。

比如:

f(10) = f(9) + f(8)

f(9) = f(8) + f(7) 重復(fù) 8

f(8) = f(7) + f(6) 重復(fù) 7

時(shí)間復(fù)雜度是O(2ⁿ),極慢

def F1(n): if n <= 1: return max(n, 0) # 前兩項(xiàng) return F1(n-1)+F1(n-2) # 遞歸算法二:記憶化搜索

開一個(gè)大數(shù)組記錄中間結(jié)果,如果一個(gè)狀態(tài)被計(jì)算過,則直接查表,否則再遞歸計(jì)算。

總共有 n 個(gè)狀態(tài),計(jì)算每個(gè)狀態(tài)的復(fù)雜度是 O(1),所以時(shí)間復(fù)雜度是 O(n)。但由于是遞歸計(jì)算,遞歸層數(shù)太多會(huì)爆棧。

res = [None]*100000def F2(n): if n <= 1: return max(n, 0) if res[n]: return res[n] # 如果已存在則直接查找返回結(jié)果 res[n] = F2(n-1)+F2(n-2) # 不存在則計(jì)算 return res[n]算法三:遞推

開一個(gè)大數(shù)組,記錄每個(gè)數(shù)的值。用循環(huán)遞推計(jì)算。

總共計(jì)算 n 個(gè)狀態(tài),所以時(shí)間復(fù)雜度是 O(n)。但需要開一個(gè)長(zhǎng)度是 n 的數(shù)組,內(nèi)存將成為瓶頸。

def F3(n): if n <= 1: return max(n, 0) res = [0, 1] for i in range(2,n+1):res.append(res[i-1]+res[i-2]) return res[n]算法四:遞歸+滾動(dòng)變量

比較優(yōu)秀的一種解法。仔細(xì)觀察我們會(huì)發(fā)現(xiàn),遞推時(shí)我們只需要記錄前兩項(xiàng)的值即可,沒有必要記錄所有值,所以我們可以用滾動(dòng)變量遞推。

時(shí)間復(fù)雜度還是 O(n),但空間復(fù)雜度變成了O(1)。

def F4(n): if n <= 1: return max(n, 0) fn, f0, f1 = 0, 1, 0 # fn為最終結(jié)果,f0為第0項(xiàng),f1為第一項(xiàng), for i in range(2, n+1):fn = f0 + f1 # 前兩項(xiàng)和f0, f1 = f1, fn # 遞推變量 return fn算法五:矩陣乘法+快速冪

利用矩陣運(yùn)算的性質(zhì)將通項(xiàng)公式變成冪次形式,然后用平方倍增(快速冪)的方法求解第 n 項(xiàng)。

先說(shuō)通式:

Python實(shí)現(xiàn)求解斐波那契第n項(xiàng)的解法(包括矩陣乘法+快速冪)

利用數(shù)學(xué)歸納法證明:

這里的a0,a1,a2是對(duì)應(yīng)斐波那契的第幾項(xiàng)

Python實(shí)現(xiàn)求解斐波那契第n項(xiàng)的解法(包括矩陣乘法+快速冪)

證畢。

所以我們想要的得到An,只需要求得Aⁿ,然后取第一行第二個(gè)元素即可。

如果只是簡(jiǎn)單的從0開始循環(huán)求n次方,時(shí)間復(fù)雜度仍然是O(n),并不比前面的快。我們可以考慮乘方的如下性質(zhì),即快速冪:

Python實(shí)現(xiàn)求解斐波那契第n項(xiàng)的解法(包括矩陣乘法+快速冪)

這樣只需要 logn 次運(yùn)算即可得到結(jié)果,時(shí)間復(fù)雜度為 O(logn)

def mul(a, b): # 首先定義二階矩陣乘法運(yùn)算 c = [[0, 0], [0, 0]] # 定義一個(gè)空的二階矩陣,存儲(chǔ)結(jié)果 for i in range(2): # rowfor j in range(2): # col for k in range(2): # 新二階矩陣的值計(jì)算c[i][j] += a[i][k] * b[k][j] return cdef F5(n): if n <= 1: return max(n, 0) res = [[1, 0], [0, 1]] # 單位矩陣,等價(jià)于1 A = [[1, 1], [1, 0]] # A矩陣 while n:if n & 1: res = mul(res, A) # 如果n是奇數(shù),或者直到n=1停止條件A = mul(A, A) # 快速冪n >>= 1 # 整除2,向下取整 return res[0][1]

總的來(lái)說(shuō)不是很難,適合擴(kuò)展思路。更多關(guān)于Python的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久妇女| 红桃视频欧美| 成人在线视频区| 日本精品影院| 日韩av一区二| 亚洲a成人v| 中文字幕一区二区三区日韩精品 | 国产一区二区三区四区五区| 国产调教精品| 五月天av在线| 石原莉奈一区二区三区在线观看| 亚洲精品国产日韩| 精品女同一区二区三区在线观看| 麻豆一区二区99久久久久| 日韩免费在线| 一区二区三区视频免费观看| 亚洲精品福利| 日韩久久99| 久久精品国产免费| 婷婷激情一区| 国产激情综合| 午夜精品影院| 中文字幕一区二区三区四区久久 | 久久九九国产| 国产精品日本| 日韩精品亚洲专区| 老司机精品视频网| 久久精品国语| 尤物在线精品| 久久国产日韩欧美精品| 国产福利片在线观看| 亚洲国产日韩欧美在线| 亚洲免费一区三区| 狠狠久久伊人| 夜久久久久久| 久久国产精品色av免费看| 国产精品成人一区二区不卡| 日韩午夜av在线| 国产免费播放一区二区| 成人羞羞视频在线看网址| 亚洲在线网站| 国产欧美在线| 激情欧美日韩一区| 喷白浆一区二区| 九九久久国产| 亚洲欧美日韩国产一区二区| 国产精品成人一区二区网站软件| 999久久久免费精品国产| 亚洲人成精品久久久| 国产一区二区三区天码| 香蕉久久久久久久av网站| 国产精品qvod| 久久99伊人| 久久中文精品| 亚洲欧美日本视频在线观看| 欧美xxxx性| 婷婷综合网站| 免费在线欧美黄色| 欧美日韩在线二区| 国产精品亚洲综合色区韩国| 99久久视频| 欧美国产不卡| 中文在线日韩| 999久久久免费精品国产| 国产精品亚洲综合久久| 亚洲少妇在线| 国产传媒av在线| 日韩不卡一区二区| 免费av一区二区三区四区| 国产欧美啪啪| 男人天堂欧美日韩| 播放一区二区| 国产精品激情| 夜夜精品视频| 视频在线不卡免费观看| 日韩在线观看中文字幕| 99精品视频在线观看免费播放| 欧美日韩一区二区三区不卡视频 | 国产自产自拍视频在线观看| 亚洲精品三级| 欧美亚洲国产激情| 国产伦精品一区二区三区在线播放 | 国产99久久| 久久国产精品色av免费看| 亚洲经典在线| 久久电影tv| 国产精品久久久久久久久久齐齐 | 国内揄拍国内精品久久| 日韩有吗在线观看| 久久高清一区| 亚洲手机视频| 欧产日产国产精品视频| 欧美激情aⅴ一区二区三区| 日韩三级一区| 蜜桃传媒麻豆第一区在线观看| av一区在线| 精品国产乱码久久久| 亚洲日韩中文字幕一区| 婷婷综合网站| 91精品一区二区三区综合| 日韩av专区| 精品国产黄a∨片高清在线| 欧美精品中文字幕亚洲专区| 综合一区在线| 蜜桃视频免费观看一区| 在线成人直播| 午夜久久99| 五月天激情综合网| 不卡av一区二区| 精品中文字幕一区二区三区av| 日韩电影免费网址| 日韩国产欧美| 麻豆成人av在线| 国产精品啊v在线| 国产精品v一区二区三区| 国产三级精品三级在线观看国产| 日韩高清二区| 18国产精品| 国产精品片aa在线观看| 国产精品一区二区中文字幕| 国产精区一区二区| 欧美xxxx性| 国产成人精品999在线观看| 麻豆视频在线观看免费网站黄| 高清一区二区三区av| 国产成人精品999在线观看| 欧美丰满日韩| 激情黄产视频在线免费观看| 欧美日韩免费看片| 欧美日韩激情在线一区二区三区| 99精品美女| 性欧美69xoxoxoxo| 亚洲欧美日本国产专区一区| 蜜桃视频一区二区三区在线观看| 免费成人性网站| 日本不卡视频在线| 国产精品久久久久久模特| 精品不卡一区| 91精品一区国产高清在线gif| 欧美不卡在线| 亚洲综合图色| 国产精品theporn| 精品国产一区二| 亚洲播播91| 国产亚洲网站| 日韩欧美美女在线观看| 久久国产视频网| 国产66精品| 999国产精品999久久久久久| 国产一级久久| 国产日韩1区| 中文字幕色婷婷在线视频| 蜜桃成人av| 日本在线视频一区二区| 久久精品国产99国产| 日韩一区欧美| 手机精品视频在线观看| 亚洲精品伊人| 国产一区2区| 国产精品三上| 国产精品a久久久久| 99免费精品| 日韩黄色在线观看| 中文字幕在线高清| 久久av一区二区三区| 日韩国产欧美三级| 在线看片国产福利你懂的| 午夜在线精品偷拍| 免费一级欧美在线观看视频| 国模 一区 二区 三区| 日产欧产美韩系列久久99| 黄色aa久久| 亚洲少妇在线| 精品免费视频| 丝袜美腿一区二区三区| 欧美亚洲网站| 影视先锋久久| 国产日韩在线观看视频| 亚洲二区视频| 国产日产一区| 自拍日韩欧美| 久久亚洲国产精品尤物| 91成人精品视频| 国产精品日本一区二区不卡视频| 日韩电影二区| 日韩精品一区二区三区中文在线 | 美国三级日本三级久久99| 国产精品探花在线观看| 亚洲精品91| 精品91福利视频| 综合亚洲视频| 99久久亚洲精品蜜臀| 国产麻豆精品| 久热re这里精品视频在线6| 欧美黄色一区| 亚洲免费中文| se01亚洲视频| 国产精品4hu.www| 美日韩精品视频| 日韩av首页|