📜  斐波那契序列算法python(1)

📅  最后修改于: 2023-12-03 14:55:03.459000             🧑  作者: Mango

斐波那契序列算法Python

斐波那契序列是一个经典的数学问题,定义如下:

  • 第一项和第二项为 1;
  • 除了第一项和第二项外,每一项都是前两项之和。

因此,斐波那契序列的前几项是 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)。

总结

以上就是斐波那契序列算法的两种实现方式。虽然递归实现比较简单,但是时间复杂度太高,不适合实际应用。循环实现则可以很好地解决这个问题。