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

您的位置:首頁技術文章
文章詳情頁

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

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

斐波那契數列

首先我們來定義一下斐波那契數列:

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

即數列的第0項:

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

算法一:遞歸

遞歸計算的節點個數是O(2ⁿ)的級別的,效率很低,存在大量的重復計算。

比如:

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

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

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

時間復雜度是O(2ⁿ),極慢

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

開一個大數組記錄中間結果,如果一個狀態被計算過,則直接查表,否則再遞歸計算。

總共有 n 個狀態,計算每個狀態的復雜度是 O(1),所以時間復雜度是 O(n)。但由于是遞歸計算,遞歸層數太多會爆棧。

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

開一個大數組,記錄每個數的值。用循環遞推計算。

總共計算 n 個狀態,所以時間復雜度是 O(n)。但需要開一個長度是 n 的數組,內存將成為瓶頸。

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]算法四:遞歸+滾動變量

比較優秀的一種解法。仔細觀察我們會發現,遞推時我們只需要記錄前兩項的值即可,沒有必要記錄所有值,所以我們可以用滾動變量遞推。

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

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

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

先說通式:

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

利用數學歸納法證明:

這里的a0,a1,a2是對應斐波那契的第幾項

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

證畢。

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

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

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

這樣只需要 logn 次運算即可得到結果,時間復雜度為 O(logn)

def mul(a, b): # 首先定義二階矩陣乘法運算 c = [[0, 0], [0, 0]] # 定義一個空的二階矩陣,存儲結果 for i in range(2): # rowfor j in range(2): # col for k in range(2): # 新二階矩陣的值計算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]] # 單位矩陣,等價于1 A = [[1, 1], [1, 0]] # A矩陣 while n:if n & 1: res = mul(res, A) # 如果n是奇數,或者直到n=1停止條件A = mul(A, A) # 快速冪n >>= 1 # 整除2,向下取整 return res[0][1]

總的來說不是很難,適合擴展思路。更多關于Python的資料請關注好吧啦網其它相關文章!希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99re国产精品| 伊人成人网在线看| 午夜精品免费| 国产日韩电影| 日韩精品视频一区二区三区| 国产伊人精品| 日韩在线视频精品| 久久影院资源站| 日韩高清电影免费| 蜜桃视频一区二区| 日韩午夜黄色| 亚洲性视频h| 久久精品青草| 久久狠狠久久| 青草久久视频| 五月亚洲婷婷 | 欧美久久一区二区三区| 亚洲欧美日韩精品一区二区| 国产主播一区| 欧美xxxx性| 欧美激情aⅴ一区二区三区| 欧美视频久久| 欧美久久香蕉| 欧美偷窥清纯综合图区| 日本亚州欧洲精品不卡| 欧美日韩国产探花| 香蕉精品久久| 91精品成人| 久久成人亚洲| 免费成人在线视频观看| 午夜一级在线看亚洲| 激情偷拍久久| 激情久久五月| 免费欧美日韩| 午夜精品福利影院| 欧美日韩a区| 久久av导航| 四虎成人av| 日韩精品看片| 国产精品毛片一区二区三区| 91久久在线| 爽好多水快深点欧美视频| 免费视频最近日韩| 日韩黄色av| 国产亚洲精品精品国产亚洲综合| 国产精品资源| 精品一区电影| 日韩欧美三级| 91久久国产| 亚洲伊人精品酒店| 国产欧美一区二区精品久久久| 国产精品永久| 国产欧美啪啪| 国产精东传媒成人av电影| 国产亚洲高清一区| 91tv亚洲精品香蕉国产一区| 手机在线电影一区| 国产91在线精品| 日韩在线高清| 好看的亚洲午夜视频在线| 尤物tv在线精品| 亚洲福利一区| 欧美va天堂| 国产精品www.| 成人欧美一区二区三区的电影| 亚洲激情社区| 久久字幕精品一区| 亚洲一区二区动漫| 久久香蕉网站| 久久av一区| 亚洲美女久久精品| 99riav国产精品| 精品三区视频| 综合激情婷婷| av综合电影网站| 日韩美女国产精品| 99久久亚洲精品| 国产精品网址| 国产女优一区| 欧美精品日日操| 国产美女久久| 香蕉久久国产| 天堂av在线| 国产精品亚洲综合在线观看| 国产精品毛片| 成人看片网站| 欧美综合精品| 亚洲欧美日韩国产一区| 久久电影tv| 国产精品一级| 免费视频最近日韩| 日韩不卡在线| 精品久久精品| 日韩不卡一区二区三区| 亚洲一区日韩| 91精品国产福利在线观看麻豆| 麻豆精品国产91久久久久久| 日韩中文字幕一区二区高清99| 伊人久久亚洲影院| 日韩国产综合| 精品三级在线观看视频| 蜜臀va亚洲va欧美va天堂| 韩国精品主播一区二区在线观看 | 在线亚洲一区| 日韩在线综合| 精品视频91| 国产麻豆精品久久| 一二三区精品| 久久精品免费一区二区三区 | 午夜在线精品| 国产一区亚洲| 日韩精品欧美| 中文字幕色婷婷在线视频| 美女高潮久久久| 国产欧美一区二区精品久久久 | 亚洲视频二区| 日韩视频不卡| 久久在线电影| 在线一区视频观看| 亚洲综合在线电影| 免费一二一二在线视频| 动漫av一区| 久久香蕉网站| 蜜桃精品视频| 精品成av人一区二区三区| 国产精品欧美在线观看| 911精品国产| 日本不卡的三区四区五区| 亚洲一区二区av| 在线精品福利| 日韩精品午夜视频| 日韩影片在线观看| 日本不卡视频一二三区| 日韩综合一区二区| 欧美一区二区三区久久| 国产欧美一区二区精品久久久 | 亚洲精品乱码久久久久久蜜桃麻豆| 日韩在线一区二区| 另类av一区二区| 亚洲免费影院| 亚洲精选成人| 日韩精品一二三四| 亚洲精品影院在线观看| 91精品在线免费视频| 欧美国产三级| 蜜桃av在线播放| 九九综合九九| 亚洲我射av| 国产精品免费不| 手机在线电影一区| 国产精品99免费看| 亚洲香蕉视频| 国产乱码精品一区二区亚洲| 精品久久久久久久| 久久蜜桃精品| 综合国产视频| 久久久久九九精品影院| 色老板在线视频一区二区| 蜜桃av一区二区| 国产精品超碰| 香蕉成人av| 中文字幕亚洲精品乱码| 欧美国产亚洲精品| 99精品视频在线观看免费播放| 免费成人性网站| 人人精品久久| 国产精品福利在线观看播放| 91欧美精品| 国产极品模特精品一二| 国内一区二区三区| 午夜久久一区| 亚洲在线久久| 国产精品视频首页| 中文在线免费视频| 午夜日韩福利| 亚洲香蕉久久| 欧美欧美黄在线二区| 久久伊人久久| 日韩在线二区| 亚洲欧美日韩专区| 国产精品亚洲综合色区韩国| 精品国产一级| 在线日韩视频| 美女久久一区| 国产精品免费精品自在线观看| 97人人精品| 国产麻豆综合| 国产私拍福利精品视频二区| 久久中文字幕av| 日韩一区二区三区精品视频第3页| 欧美黑人做爰爽爽爽| 99精品视频在线| 日本不卡的三区四区五区| 久久在线91| 91久久国产| 91精品国产一区二区在线观看| 久久久久一区| 日本va欧美va精品| 欧美www视频在线观看| 亚洲精品99|