📅  最后修改于: 2023-12-03 14:55:03.459000             🧑  作者: Mango
斐波那契序列是一个经典的数学问题,定义如下:
因此,斐波那契序列的前几项是 1, 1, 2, 3, 5, 8, 13, ...
在Python中,可以用递归和循环两种方式来实现斐波那契序列。
递归实现是最简单的方式,代码如下:
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
这个实现非常简单,但是存在一个严重的缺点,就是递归实现的时间复杂度非常高,为 O(2^n)。这是由于递归过程中会产生很多重复的计算,导致性能的浪费。
循环实现方法可以消除递归实现中的重复计算,从而提高性能。代码如下:
def fibonacci_iterative(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
a, b = 0, 1
for i in range(2, n+1):
c = a + b
a = b
b = c
return b
这个实现非常简洁明了。我们通过使用两个变量 a 和 b 来保存斐波那契序列的前两项,然后不断循环计算下一项,直到计算到第 n 项为止。这个算法的时间复杂度为 O(n)。
以上就是斐波那契序列算法的两种实现方式。虽然递归实现比较简单,但是时间复杂度太高,不适合实际应用。循环实现则可以很好地解决这个问题。