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

南通做外贸网站网站建设视频格式

南通做外贸网站,网站建设视频格式,网站建设mfdos 优帮云,wordpress 无广告下面这段代码定义了一个递归函数 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.dtcms.com/a/412619.html

相关文章:

  • 网站搭建的人如何识别网页用什么网站做的
  • 下什么软件做网站wordpress升级设置密码
  • 九、Spring
  • 商业门户网站有哪些河南seo推广
  • HTML可以做彩票网站吗1元购网站怎么做
  • 深圳辰硕网站优化东莞网络营销推广公司
  • 大连 响应式网站珠海做网站的公司有哪些
  • 第三十五天:寻找质数
  • 专门做油画交流的网站泰安网站建设工作室
  • 吴恩达d2
  • 学做课件的网站wordpress建站需要学什么意思
  • 营销型网站建设主要教学内容赣州人才网招聘网
  • 网站建设和维护要点wordpress搭建的博客
  • 《道家理论 与现代物理前沿理论对照表》
  • 本网站只做信息展示不提供在线交易wordpress壁纸主题
  • 政务公开及网站建设意见电子商务营销手段有哪些
  • 电感式传感器
  • 山东通信安全员A证考试的难度如何?
  • 网站建设明细费用知名品牌网站有哪些
  • 广东省建设厅的注册中心网站整站优化报价
  • GESP C++5级 2025年6月编程2题解:最大公因数
  • 做搜狗网站优化首页软英文建站平台有哪些
  • 网站项目维护费用宣传片制作合同范本
  • 安宁网站建设 熊掌基于.net平台网站内容管理系统研究与实现
  • 什么是 glTF:完整指南
  • 怎样360网站做推广域名申请网站
  • 营销型网站软件下载网站模板后本地的网站会自动做跳转
  • 建设银行银行号查询网站网页与网站设计
  • 深圳网站建设信科网络建设厅八大员在哪个网站查询
  • 卖护肤在哪个网站做宣传好自动点击器安卓