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

怎样下载建设部网站百度官网入口

怎样下载建设部网站,百度官网入口,交友系统网站建设,素材中国官网下面这段代码定义了一个递归函数 fibonacci&#xff0c;用于计算第 n 个斐波那契数。 def fibonacci(n):if n < 1:return nelse:return fibonacci(n - 1) fibonacci(n - 2)虽然代码逻辑正确&#xff0c;但其性能较差&#xff0c;尤其是对于较大的 n 值&#xff0c;其复杂度…

下面这段代码定义了一个递归函数 fibonacci,用于计算第 n 个斐波那契数。

def fibonacci(n):if n <= 1:return nelse:return fibonacci(n - 1) + fibonacci(n - 2)

虽然代码逻辑正确,但其性能较差,尤其是对于较大的 n 值,其复杂度较高:

  • 时间复杂度:当前代码的时间复杂度为 O(2^n),因为每次调用 fibonacci(n) 会递归调用 fibonacci(n-1)fibonacci(n-2),导致重复计算。
  • 空间复杂度:空间复杂度为 O(n),因为递归调用栈的深度为 n
优化 1:使用动态规划(自顶向下,带备忘录)

通过缓存已经计算过的斐波那契数,避免重复计算,可以将时间复杂度优化到 O(n)

def fibonacci(n, memo={}):if n <= 1:return nif n not in memo:memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo)return memo[n]
优化 2:使用动态规划(自底向上,迭代法)

通过迭代的方式计算斐波那契数,避免递归调用栈的开销,同时将空间复杂度优化到 O(1)

def fibonacci(n):if n <= 1:return na, b = 0, 1for _ in range(2, n + 1):a, b = b, a + breturn b
优化 3:使用 Python 内置的 lru_cache 装饰器

Python 的 functools 模块提供了 lru_cache 装饰器,可以自动缓存函数的结果,避免重复计算。

from functools import lru_cache@lru_cache(maxsize=None)
def fibonacci(n):if n <= 1:return nreturn fibonacci(n - 1) + fibonacci(n - 2)
优化4:使用矩阵快速幂算法(高级优化)

对于非常大的 n 值,可以使用矩阵快速幂算法将时间复杂度优化到 O(log n)。这种方法适合对性能要求极高的场景。

def matrix_mult(a, b):return [[a[0][0] * b[0][0] + a[0][1] * b[1][0], a[0][0] * b[0][1] + a[0][1] * b[1][1]],[a[1][0] * b[0][0] + a[1][1] * b[1][0], a[1][0] * b[0][1] + a[1][1] * b[1][1]],]def matrix_pow(matrix, power):result = [[1, 0], [0, 1]]  # Identity matrixwhile power > 0:if power % 2 == 1:result = matrix_mult(result, matrix)matrix = matrix_mult(matrix, matrix)power //= 2return resultdef fibonacci(n):if n <= 1:return nmatrix = [[1, 1], [1, 0]]result = matrix_pow(matrix, n - 1)return result[0][0]

推荐使用 优化建议 2(迭代法),因为它在时间复杂度和空间复杂度上都有较好的平衡,且代码简洁易读。优化后的代码如下:

def fibonacci(n):if n <= 1:return na, b = 0, 1for _ in range(2, n + 1):a, b = b, a + breturn b
http://www.cadmedia.cn/news/8344.html

相关文章:

  • 广告素材网站都有哪些在线培训系统app
  • 企业网站推广的重要性市场营销案例分析及解答
  • 如何策划网络事件营销长沙网站seo收费
  • 驻马店营销型网站建设百度关键词多少钱一个月
  • 江西龙峰建设集团的网站网上营销怎么做
  • 巨人科技网站建设麒麟seo外推软件
  • 湖口网站建设百度app官网下载安装
  • 电影网站建设步骤全网搜索指数
  • 凡科网站建设网站武汉做网络推广的公司
  • 管理培训机构合肥seo排名优化公司
  • 江阴高端网站建设济宁做网站的电话
  • 网站集群建设方案app推广方式有哪些
  • 十堰做网站最专业的公司朋友圈广告
  • 企业网站免费软文台
  • 广东建设信息网查询成绩网页搜索优化seo
  • 注册公司名称用什么名字好镇江网站seo
  • 昆明电商网站开发理发培训专业学校
  • 大连高端网站建设文员短期电脑培训
  • 新华书店的做的数字阅读网站产品推广方案范文
  • 网站源码建站湖南网站营销seo多少费用
  • 宁波疫情防控最新政策武汉百度推广优化
  • 建设网站的公司兴田德润怎么联系鞍山网络推广
  • phpmysql网站开发笔记来几个关键词兄弟们
  • 邢台优化网站排名百度地图推广怎么收费标准
  • 宁夏商擎网站建设合肥百度推广公司哪家好
  • 深圳建工建设集团有限公司杭州seo网络推广
  • 安徽专业网站建设设计百度指数搜索
  • 湘潭做网站价格 d磐石网络关键词歌曲免费听
  • 建设局特种作业网站南京seo关键词优化预订
  • 哈尔滨最新疫情防控政策苏州seo关键词优化报价