在Python中实现斐波那契数列(Fibonacci sequence)的4中方法

简介: 在Python中实现斐波那契数列(Fibonacci sequence)的4中方法

1. 递归方法 (简洁但效率低,尤其对于较大的n值)

Python

1def fibonacci_recursive(n):
2    if n <= 0:
3        return "输入的数值应大于0"
4    elif n == 1:
5        return 0
6    elif n == 2:
7        return 1
8    else:
9        return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
10
11# 示例调用
12print(fibonacci_recursive(10))

2. 循环迭代法 (效率更高)

Python

1def fibonacci_iterative(n):
2    if n <= 0:
3        return []
4    elif n == 1:
5        return [0]
6    elif n == 2:
7        return [0, 1]
8    else:
9        fib_sequence = [0, 1]
10        for _ in range(2, n):
11            fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
12        return fib_sequence[:n]
13
14# 示例获取前10个斐波那契数
15print(fibonacci_iterative(10))

3. 动态规划备忘录法 (优化递归,避免重复计算)

Python

1def fibonacci_memoization(n, memo={}):
2    if n in memo:
3        return memo[n]
4    elif n <= 2:
5        memo[n] = n - 1
6    else:
7        memo[n] = fibonacci_memoization(n - 1, memo) + fibonacci_memoization(n - 2, memo)
8    return memo[n]
9
10# 示例调用
11print(fibonacci_memoization(10))

4. 闭包函数实现懒惰求值

Python

1def fibonacci_lazy():
2    a, b = 0, 1
3    while True:
4        yield a
5        a, b = b, a + b
6
7# 使用生成器获取前10个斐波那契数
8fib_generator = fibonacci_lazy()
9for _ in range(10):
10    print(next(fib_generator))

展示了递归、迭代、动态规划备忘录以及使用生成器四种不同方式来计算斐波那契数列。在实际编程中,通常会倾向于使用非递归的方式,因为它们对于大规模计算更有效率且避免栈溢出问题。

目录
相关文章
|
20小时前
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
|
1天前
|
存储 Python
python列表操作和方法
python列表操作和方法
6 1
|
4天前
|
存储 索引 Python
反转Python列表的4种方法
反转Python列表的4种方法
13 2
|
3天前
|
安全 数据安全/隐私保护 开发者
保护敏感数据:使用Python加密数据的实用方法
保护敏感数据是一项基本的安全实践,Python通过上述库提供了强大的加密工具来实现这一目标。选择哪种方法取决于具体的应用场景和安全需求:对称加密(如AES)适合快速处理大量数据,而非对称加密(如RSA)更适合安全地交换密钥或进行身份验证。哈希函数则用于验证数据的完整性和一致性。通过合理使用这些技术,开发者可以大大增强其应用程序的安全性。
17 0
|
4天前
|
存储 数据安全/隐私保护 Python
Python编程--使用Ftplib破解FTP用户口令的方法
Python编程--使用Ftplib暴力破解FTP用户口令
|
机器学习/深度学习 Python
Python如何实现斐波那契数列?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!
133 0
|
2天前
|
人工智能 数据挖掘 Serverless
探索Python编程:从基础到实战
【10月更文挑战第2天】本文将带你走进Python的世界,了解它的基本语法、数据结构、函数等核心概念,并通过实例演示如何应用这些知识解决实际问题。无论你是编程新手还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python编程之旅吧!
|
2天前
|
机器学习/深度学习 存储 数据挖掘
探索Python编程之美:从基础到进阶的旅程
【10月更文挑战第2天】本文旨在通过浅显易懂的方式,带领读者走进Python编程的世界。我们将从Python的基础语法开始,逐步深入到面向对象编程、异常处理等高级主题,最后探讨如何将Python应用于实际项目中。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
|
21小时前
|
开发者 Python
Python 语法糖:让编程更简单
Python 语法糖:让编程更简单
12 3
|
21小时前
|
开发者 Python
Python 语法糖:让编程更简单(续)
Python 语法糖:让编程更简单(续)