📜  斐波那契数的空间有效迭代法(1)

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

斐波那契数的空间有效迭代法

斐波那契数列是一个经典的数学问题,其中每个数字是前两个数字的和。通常,我们使用递归或动态规划来计算斐波那契数列。然而,这些方法在计算大型斐波那契数时效率较低。

空间有效的迭代法是一种更高效的方法来计算斐波那契数列。它只使用常量级别的额外空间,并且在一次迭代中计算出所有的斐波那契数。

下面是一个使用空间有效的迭代法计算斐波那契数的示例代码:

def fibonacci(n):
    if n <= 0:
        return None
    if n == 1:
        return 0
    if n == 2:
        return 1

    prev_1 = 0
    prev_2 = 1
    result = 0

    for i in range(3, n + 1):
        result = prev_1 + prev_2
        prev_1, prev_2 = prev_2, result

    return result

以上代码使用了迭代的方式计算斐波那契数列的第 n 个数字。通过维护两个变量 prev_1prev_2 分别代表前两个数字,以及一个变量 result 来存储计算结果。通过循环依次计算每个数字,最终得到结果并返回。

使用空间有效的迭代法计算斐波那契数列的时间复杂度为 O(n),空间复杂度为 O(1)。

以下是一些使用空间有效迭代法计算斐波那契数的示例:

print(fibonacci(1))  # 输出: 0
print(fibonacci(2))  # 输出: 1
print(fibonacci(5))  # 输出: 3
print(fibonacci(10))  # 输出: 34

通过使用空间有效的迭代法,我们可以更高效地计算斐波那契数列,特别是在处理大型数字时。