当前位置: 首页 > news >正文

做网站的计划概要河南省百城建设提质工程官网网站

做网站的计划概要,河南省百城建设提质工程官网网站,wordpress免费强大主题,微信小程序论坛在 Python 3.11 中实现斐波那契数列的常见方式有多种,下面我将展示几种不同的实现方法,包括递归、迭代和使用缓存(动态规划)来优化递归版本。 1. 递归方式(最简单但效率较低) def fibonacci_recursive(n)…

在 Python 3.11 中实现斐波那契数列的常见方式有多种,下面我将展示几种不同的实现方法,包括递归、迭代和使用缓存(动态规划)来优化递归版本。

1. 递归方式(最简单但效率较低)

def fibonacci_recursive(n):if n <= 1:return nreturn fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)# 测试
print(fibonacci_recursive(10))  # 输出 55

这种方式的时间复杂度是 O(2^n),因为每次调用都会递归两次,对于较大的 n,效率较低。

2. 使用缓存优化递归(动态规划 + 记忆化)

使用 Python 的 functools.lru_cache 装饰器,可以将之前计算的结果缓存,避免重复计算。

from functools import lru_cache@lru_cache(maxsize=None)
def fibonacci_memoization(n):if n <= 1:return nreturn fibonacci_memoization(n - 1) + fibonacci_memoization(n - 2)# 测试
print(fibonacci_memoization(10))  # 输出 55

这个版本的时间复杂度是 O(n),空间复杂度也是 O(n),因为每个斐波那契数只会计算一次。

3. 迭代方式(最有效率)

迭代方式可以在 O(n) 的时间内完成,并且只需要常量级的空间 O(1)。

def fibonacci_iterative(n):if n <= 1:return na, b = 0, 1for _ in range(2, n + 1):a, b = b, a + breturn b# 测试
print(fibonacci_iterative(10))  # 输出 55

4. 动态规划方式(使用数组)

这种方式通过数组存储中间结果,也是一种动态规划的实现。

def fibonacci_dp(n):if n <= 1:return ndp = [0] * (n + 1)dp[1] = 1for i in range(2, n + 1):dp[i] = dp[i - 1] + dp[i - 2]return dp[n]# 测试
print(fibonacci_dp(10))  # 输出 55

这个版本的时间复杂度是 O(n),但空间复杂度是 O(n) 因为需要存储每一步的结果。

选择最佳实现

  • 递归:简洁但效率低。
  • 记忆化递归:解决了递归的效率问题。
  • 迭代:最优的时间和空间复杂度。
  • 动态规划(数组):适合需要保存所有中间结果的场景。

大多数情况下,迭代版本 是面试中推荐的最佳解法,因为它时间和空间效率都很好。

http://www.yayakq.cn/news/852577/

相关文章:

  • 南京软月网站建设公司wordpress代码 lt
  • 做徽章的企业网站设计之家房屋装修游戏
  • o2o商城网站开发上海网络推广平台
  • 一个完整的网站设计江门那里做公司网站好
  • 青岛模板网站建设番禺品牌型网站建设
  • 网站建设付款银行写什么用途建设信息网站
  • 海北北京网站建设百度网站地图怎么做
  • 私人诊所网站源码重庆网站备案系统
  • 建网站在哪买域名好点关键词查询工具有哪些
  • 河北建设机械协会网站怎样开物流网站
  • 网站栏目建设方案深圳百度seo代理
  • 沈阳做微网站的公司网站备案中的网站名称
  • 美容医疗手机网站模板广东省建设工程交易中心
  • 如何建设网站接收数据数据库里建设好的网站为什么外网进不去网站
  • 网站建设是不是可以免费建站怎样在网站做环评公示
  • 青岛市城市建设管理局网站东营+网站建设
  • 做特产网站的原因友情链接2598
  • 网站为什么打不开在线制作文字
  • 网站开发拥有权约定网站开发的经济可行性分析
  • 专做影视评论的网站银州手机网站建设
  • 青海网站建设公司angularjs的网站模板
  • 2017最新网站icp备案西平县住房和城乡建设局网站
  • 中英文网站是咋做的苏州新途网络科技有限公司
  • 公司网站开发项目外包方案个人微信网页版登录入口
  • 个人自建网站cms网站开发框架
  • 中国建设工程造价管理协会网站简称怎么做企业管理软件定制
  • 建站网站图片不显示尚易企业邮箱
  • 厦门哪些做鲜花的网站保定免费建站服务
  • 产品网站开发wordpress评论刷新查看
  • 做纸浆的网站电子商务网站建设 臧良运 好不好