动态规划--斐波那契数列

动态,规划,数列 · 浏览次数 : 7

小编点评

**子问题的重复计算--递归方法--执行效率低** ```python def fibnacci(n): if n == 1 or n == 2: return 1 else: return fibnacci(n - 1) + fibnacci(n - 2) print(fibnacci(100)) ``` **动态规划(DP)的思想** ```python def fibnacci_no_recurision(n): f = [0, 1, 1] if n > 2: for i in range(n - 2): num = f[-1] + f[-2] f.append(num) return f[n] ``` **归纳总结** 该程序展示了递归方法和动态规划在计算子问题的效率对比。递归方法在计算中重复调用函数,而动态规划通过缓存结果来减少计算时间。 **示例输出** ``` 100 99 ```

正文

博客地址:https://www.cnblogs.com/zylyehuo/

# -*- coding: utf-8 -*-


# 子问题的重复计算--递归方法--执行效率低
def fibnacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fibnacci(n - 1) + fibnacci(n - 2)


# print(fibnacci(100))


# 动态规划(DP)的思想 = 递推式 + 重复子问题
def fibnacci_no_recurision(n):
    f = [0, 1, 1]
    if n > 2:
        for i in range(n - 2):
            num = f[-1] + f[-2]
            f.append(num)
    return f[n]


print(fibnacci_no_recurision(100))

与动态规划--斐波那契数列相似的内容:

动态规划--斐波那契数列

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- # 子问题的重复计算--递归方法--执行效率低 def fibnacci(n): if n == 1 or n == 2: return 1 else: return fib

大咖论道,大模型时代软件研发效率革命

摘要:开发者如何拥抱这波AIGC浪潮? 本文分享自华为云社区《大咖论道,大模型时代软件研发效率革命》,作者:华为云社区精选。 根据GitHub的一项调查,92%的受访开发者正在借助AI编码工具来完成工作和其他项目。另一方面,AI已经通过了大厂L3工程师入职测试,可自如应对数组/字符串、动态规划等技术

动态规划--钢条切割问题

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- import time def cal_time(func): def wrapper(*args, **kwargs): t1 = time.time() result =

动态规划--最长公共子序列( LCS 问题)

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- # 最长公共子序列的长度 def lcs_length(x, y): m = len(x) n = len(y) c = [[0 for _ in range(n + 1)]

初步动态规划讲解:数字三角形

题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从 7 → 3 → 8 → 7 → 5 7 \to 3 \to 8 \

Java算法之动态规划详解-买卖股票最佳时机

①动态规划 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、

掌握动态规划,从“什么问题适合用”及“解题思路”入手

摘要:一般是用动态规划来解决最优问题。 本文分享自华为云社区《深入浅出动态规划算法(中)》,作者:嵌入式视觉 。 一,“一个模型三个特征”理论讲解 一个模型指的是适合用动态规划算法解决的问题的模型,这个模型也被定义为“多阶段决策最优解模型”。具体解释如下: 一般是用动态规划来解决最优问题。而解决问题

【Python】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时,彩色图像通常由数百万个颜色值组成,每个颜色值都由红、绿、蓝三个分量组成。因此,如果我们直接对图像的每个像素进行编码,会导致非常大的数据量。为了减少数据量,我们可以尝试减少颜色的数量,从而降低存储需求。 1.主要原理 (一)颜色聚类(Color Clustering):

刷爆 LeetCode 周赛 337,位掩码/回溯/同余/分桶/动态规划·打家劫舍/贪心

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 上周末是 LeetCode 第 337 场周赛,你参加了吗?这场周赛第三题有点放水,如果按照题目的数据量来说最多算 Easy 题,但如果按照动态规划来做可以算 Hard 题。 小彭的技术交

LeetCode 双周赛 104(2023/05/13)流水的动态规划,铁打的结构化思考

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 往期回顾:LeetCode 单周赛第 344 场 · 手写递归函数的通用套路 T1. 老人的数目(Easy) 标签:模拟、计数 T2. 矩阵中的和(Medium) 标签:模拟、排序 T3. 最大或值(Medi