python版斐波那契數列

2021-09-23 01:57:31 字數 613 閱讀 4117

遞迴版本:函式在執行的過程中呼叫了本身,通常用於分治法,即將問題拆分為規模較小的子問題

def fib1(n):

return 1 if n<=1 else fib1(n-1)+fib2(n-2)

list(map(fib1,range(10)))

輸出:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
非遞迴版本:

def fib2(n):

a,b=1,1

for _ in range(n):

a,b=b,a+b

return a

tmp = map(fib2,range(10))

list(tmp)

快取版本:

def fib3(n,cache=):

try:

return cache[n]

except keyerror:

cache[n]=fib3(n-1)+fib3(n-2)

return cache[n]

list(map(fib3,range(10)))

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

python 斐波那契數列

用python寫斐波那契數列當然大家都寫的出來。當時如果用一行 寫呢。本來沒有打算用一行 寫的。後來看到有用一行 寫階乘的。reduce lambda x,y x y,i for i in range 1,n 1 當然在這之前需要 from functools import 好吧,如果你願意,就算兩...

python斐波那契數列

學習過python基礎語法,我們嘗試做乙個簡單的斐波那契數列。斐波納契數列 兩個元素的總和確定了下乙個數 a,b 0,1 while b 10 print b a,b b,a b執行以上程式,輸出 112 358end關鍵字 關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾新增不同的字元,例...