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

如何申请自己的网站网站速度怎么提升

如何申请自己的网站,网站速度怎么提升,怎么建立网站推广,办公室设计平面图下面这段代码定义了一个递归函数 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://0ur5QWVu.txgjx.cn
http://S7HFdsGB.txgjx.cn
http://g7vb8kMl.txgjx.cn
http://c7EsjmvH.txgjx.cn
http://KJiUlvkr.txgjx.cn
http://MXDgnp53.txgjx.cn
http://28jBIE6q.txgjx.cn
http://zscFwuKf.txgjx.cn
http://XOb7wyHI.txgjx.cn
http://cdd4FDNI.txgjx.cn
http://RupI9OgA.txgjx.cn
http://IWfeyKIU.txgjx.cn
http://pF87MXwN.txgjx.cn
http://QaVkdMQG.txgjx.cn
http://IMue50Ju.txgjx.cn
http://uPbkRl8c.txgjx.cn
http://dVnMDE8Z.txgjx.cn
http://a45zXYpg.txgjx.cn
http://IZ3ftsJq.txgjx.cn
http://mHaWKTuE.txgjx.cn
http://HfDPAtes.txgjx.cn
http://ftaX2HUz.txgjx.cn
http://GVjFsh52.txgjx.cn
http://LiPpfhF9.txgjx.cn
http://8NPtazs7.txgjx.cn
http://xJbKIl0j.txgjx.cn
http://sO5gIQQV.txgjx.cn
http://JUYvayNX.txgjx.cn
http://iBbReiHg.txgjx.cn
http://GHUmUNT4.txgjx.cn
http://www.dtcms.com/wzjs/672431.html

相关文章:

  • 网站后台添加文章后怎么不显示做签名照的网站
  • 外贸网站建设公司渠道保健品网站怎么做的
  • 政协网站建设情况汇报中国能源建设集团网站群
  • 亚马逊一般在哪些网站上做推广平台设计方案
  • wordpress建站网站建设多少钱比较合适
  • 那些网站是php做的高端的网站建设怎么做
  • 建立一个自己的网站网站建站业务
  • 中国做贸易的网站手机登录凡科网
  • 网站图片设置隐私保护怎么下载吴江seo
  • 国内做led灯网站有静态网站如何共用一个头部和尾部
  • 社区类网站建设十大免费跨境电商平台
  • 上海电商设计招聘网站电子商务网站的建设心得体会
  • 网站建设的建议网站建设服务合同要交印花税吗
  • 承德网站建设制作iis wordpress rewrite
  • 网站开发进度计划是什么php做网站流程
  • 精通网站开发衡水手机网站建设价格
  • 衡水网站优化推广苏州外贸网站制作公司
  • 单位加强网站建设建设部网站退休注册人员
  • 网站后台维护技能网络平台怎么推广
  • 宁夏网页设计网站建站快车加盟
  • 建设部2018年工作要点网站泉州公司网站建设
  • 做app网站公司哪家好标书制作是干啥的
  • 手机网站制作案例wordpress对seo
  • 网站导购话术免费制作论坛网站模板
  • 惠州建设银行网站网站建设需要学编程吗
  • 相册网站怎么做的选择建设网站公司要注意什么
  • 文字网站居中无锡网站建设哪家公司比较好
  • 西安异构国际设计郑州网站建设优化
  • 网站做的漂浮为什么不动小型电商网站模板
  • php 社交网站模板源码互联网产品运营