python遞迴執行過慢的原因及解決方案

2021-10-23 21:57:29 字數 660 閱讀 2740

今天用python編了乙個斐波那契數列,**如下:

def

feb(i:

int)

:if i ==0:

return

1if i ==1:

return

2return feb(i-2)

+ feb(i-1)

print

(feb(73)

)

結果執行下去直接不出結果了,嘗試把數值從73改到27後秒執行,看來是數值太大,執行時間過長……

python在執行遞迴的時候,每次用到之前的數值,都會重新計算一次……所以才會這麼慢。

將結果放到快取中,可以提高執行速度。

from functools import lru_cache

@lru_cache(maxsize=

1024

)def

feb(i:

int)

:if i ==0:

return

1if i ==1:

return

2return feb(i-2)

+ feb(i-1)

print

(feb(73)

)

這樣執行73也可以秒出結果了!

mysql與ftp連線過慢的原因

解決方式為 1 解除安裝掉dns服務或清除記錄dns快取來解決 2 mysql跳過網域名稱解析 在my.cnf中配置 mysqld skip name resolve 2 ftp跳過網域名稱解析 vsftp.conf中配置 reverse lookup enable no 3 強制解除安裝dns r...

python遞迴函式的執行過程

舉例 def nove n,a,b,c if n 1 print a,c else nove n 1,a,c,b nove 1,a,b,c nove n 1,b,a,c 執行輸出結果 nove 3,a b c a c a b c b a c b a b c a c 執行過程詳解 1 def nove...

DB2 CM資料庫訪問過慢的原因

專案名稱 cm內容管理平台。專案架構 ibm的cm v8.4,was6.1.0.3,db2 9.5 資料庫 cm包含兩資料庫 庫伺服器icmnlsdb 資源管理器rmdb,應用資料庫有bbkp,其中was和rmdb資料庫安裝和儲存在一台伺服器,應用資料庫bbkp和icmnlsdb資料庫在另外一台資料...