python实现斐波那契数列的方法示例

  • Post category:Python

Python实现斐波那契数列的方法示例

什么是斐波那契数列?

斐波那契数列,又称黄金分割数列,通常表示为f(n),在数学上的定义为:

f(0) = 0

f(1) = 1

f(n) = f(n-1) + f(n-2) (n ≥ 2)

方法一:递归

实现斐波那契数列最简单的方法就是递归。将f(n)表示为f(n-1)+f(n-2),当n=0或1时,可以直接返回0或1。代码如下:

def fibonacci_recursive(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)

这种方法虽然简单,但效率并不高。因为递归是通过不断调用自身函数实现的,每次调用都会产生额外的开销。当n值较大时,递归次数过多,可能导致程序崩溃。

方法二:循环

为了避免递归的缺陷,我们可以使用循环来实现斐波那契数列。我们可以利用两个变量f0和f1来表示f(0)和f(1)的值,并通过循环依次计算出后面的值。代码如下:

def fibonacci_loop(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        f0, f1 = 0, 1
        for i in range(2, n+1):
            f0, f1 = f1, f0 + f1
        return f1

这种方法比递归方法更为高效,且可以处理更大的n值。

示例一:输出前n个斐波那契数

def fibonacci_sequence(n):
    for i in range(n):
        print(fibonacci_loop(i), end=" ")
    print()

fibonacci_sequence(10)

输出结果:

0 1 1 2 3 5 8 13 21 34 

示例二:查找第n个斐波那契数

print(fibonacci_loop(10))   # 输出第10个斐波那契数

输出结果:

55

通过上述两个示例,我们可以很方便地实现斐波那契数列。