Python3實現斐波那契數列 md

2021-09-10 05:44:38 字數 1228 閱讀 4849

斐波那契數列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610…

規律特點是:n>2,時,後乙個數是前兩個數之和。

版本一

# python3迭代方法實現斐波那契數列

deffibonacci

(n):

list_a =

x =0# x從0開始

y =1for i in

range

(n):

x,y = y,x+y # pyhon用一行巧妙的實現了前兩個數的累加賦值

return list_a

print

(fibonacci(15)

)

版本二

# python3迭代方法實現斐波那契數列

deffibonacci

(n):

list_a =

for i in

range

(n):

if i ==

0or i ==1:

# 注意因為列表索引從0開始,所以這裡也是從0開始1)

else:1

]+list_a[i-2]

)return list_a

print

(fibonacci(15)

)

# python3遞迴方法實現斐波那契數列

deffibonacci

(n):

if n ==

1or n ==2:

return

1return fibonacci(n-1)

+ fibonacci(n-2)

list_a =

for i in

range(1

,16):

# 注意這裡是從1開始,因為定義的函式中n最小為0

)print

(list_a)

對於使用遞迴函式 fib(n) 求解斐波那契數列,則 fib(n) 共呼叫了幾次 fib(m)問題?

這個問題本質上也是乙個斐波那契數列,呼叫的次數為fib(n-m+1)次。如:fib(2)呼叫了fib(2)1次,fib(3)呼叫了fib(2)1次,fib(4)=fib(3)+fib(2)=2,以此類推。

問fib(20)呼叫了fib(2)多少次?

答:fib(19)=4181次,可見遞迴對於函式的重複呼叫非常的嚴重!

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

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

python3 題解(2 斐波那契數列)

問題 1,1,2,3,5,8,13,稱為斐波那契數列。它的每一項都是前兩項的和。程式設計求斐波那契數列的第n項。這個問題不太困難,可以有很多的解法。最容易想到的是 弄乙個陣列,前頭兩個元素裝上1,1,後邊的逐項計算就行。def fib n a 1 1 for i in range n 2 1 a i...

斐波那契數列 python 實現

什麼?找規律找的不錯!其實我想說的是 斐波拉契數列!斐波那契數列 兔子數列.jpg 自從學python,我已經拋棄了計算器。why?因為python比計算器來的快啊!今天要說的斐波那契數列也是,python生成遠比書寫加計算來的快!如果你也想擁有這項牛 zhuang 逼 bi 技能,趕快和我一起學p...