斐波那契函数起源于对斐波那契数列
的实现,斐波那契数列为:
a[0] = 0 (n=0)
a[1] = 1 (n=1)
a[n] = a[n-1] + a[n-2] (n>=2)
本篇文章将会从各个方法实现斐波那契数列
def fibs(n):
list1 = [0,1]
for i in range(n-2):
list1.append(list1[-2]+list1[-1])
return list1
if __name__ == "__main__":
result = fibs(10)
print(result)
image.png
理解
- 先定义一个初始列表
[0,1]
,用于存放数据 list.append(x)
方法的理解:将参数x存放在列表list的最后面list1.append(list1[-2]+list1[-1])
:表示将倒数末尾
两个元素相加,再追加到list1
末尾- 通过
n-2
次遍历,获取所有的数据 - 过程如下:
末尾两个元素相加,再放到末尾,反复循环
方法2
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
if __name__ == "__main__":
result = fib(4)
方法3
m = {0:0, 1:1}
def fib(n):
if not n in m.keys():
m[n] = fib(n-1) + fib(n-2)
return m[n]
if __name__ == "__main__":
f = fib(5)
一行代码解决
print([x[0] for x in [(a[i][0], a.append([a[i][1], a[i][0]+a[i][1]])) for a in ([[1, 1]], ) for i