算法之背包问题

news2024/10/5 17:16:19

   可分的背包问题是可以用贪心法来解决,而0-1背包问题通常使用动态规划方法来解决。

可分背包问题
       在可分背包问题中,物品可以被分割,您可以取走物品的一部分以适应背包的容量。这里的关键是物品的价值密度,即单位重量的价值。您可以按照价值密度从高到低的顺序选择物品,先取价值密度最高的物品,然后是次高的,依此类推,直到背包装满为止。这种方法称为贪心算法,因为它每一步都选择当前看起来最优的选项。

0-1背包问题
       与可分背包问题不同,0-1背包问题中的物品不能分割。您必须决定是否将整个物品放入背包。这就需要使用动态规划来找到最优解。动态规划通过考虑所有可能的组合来确保找到最大价值。它使用一个二维数组 ( dp[i][w] ) 来存储对于前 ( i ) 个物品,当背包容量为 ( w ) 时的最大价值。状态转移方程如下:

𝑑𝑝[𝑖][𝑤]=max⁡(𝑑𝑝[𝑖−1][𝑤],𝑑𝑝[𝑖−1][𝑤−𝑤𝑒𝑖𝑔ℎ𝑡[𝑖]]+𝑣𝑎𝑙𝑢𝑒[𝑖])

       这里,( dp[i-1][w] ) 表示不选择第 ( i ) 个物品时的最大价值,而 ( dp[i-1][w-weight[i]] + value[i] ) 表示选择第 ( i ) 个物品时的最大价值。通过这种方式,动态规划确保了在每一步都考虑了所有可能的选择,从而找到了最优解。

软考上也是有类似的题的。

请填写1到4个空。

我来解释这道题吧

首先将c这个二维数组变为0,也就是初始化,那个Memoized_Knapsack这个函数,将c二维数组设置为-1,-1就是已经结束的意思,然后执行Calculate_Max_Value这个函数,这个函数第一件事情就是判断c[i][j]是否为-1,如果是-1就已经结束了,所以这个1这个空应该填c[i][j]。第二个if判断也不难看出就是简单的将物体数量为0的设置为0,把背包容量为0的设置为0.,倘若不知道下面的i,和j代表的什么可以看我上面写的。i是物品数量,j是背包容量。

所以第二个空应该是j>=w[i],因为只有剩余的背包容量大于或者等于w[i]里面的容量,才可以被选进去,第三个空是再次调用Calculate_Max_Value(v,w,i-1,j-w[i])+v[i]  ,当c[i][j]选的值比那个temp小的时候,就进行一次互换就行了,也就是c[i][j]=temp。

总结:我觉得很好理解吧,求取到第i的物品的价格就是c[i][j],然后求下一个物品和之前的总价格temp,在与之比较,就行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1693617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GNSS中的多路径效应原理及计算方法

1 多路径效应原理 图1 多路径效应原理图 2 计算方法 如需原文,可加多源融合定位与智能控制讨论群获取,QQ群号:51885949

JAVAEE之线程(10)_线程池、线程池的创建、实现线程池

一 线程池 1.1为什么要有线程池? 线程池顾名思义是由多个线程所组成,作用就是减少线程的建立与销毁,与数据库连接池相同概念,为了减少连接与释放,从而降低消耗提升效率。 1.2 线程池的优势 总体来说,线程…

Milvus Cloud 非结构化数据平台

从技术面来看,向量数据库底座自然而然向外延伸的产品包含: 1)向量提取,从非结构化数据中提取向量,这是向量数据库上游的工作,十分重要; 2)模型选择,选择正确的模型,能够更精准、更高质量地提取向量; 3)映射管理,即管理数据的本体和数据的语义层之间的映射,在…

设计模式之创建型模式---原型模式(ProtoType)

文章目录 概述类图原型模式优缺点优点缺点 代码实现 概述 在有些系统中,往往会存在大量相同或者是相似的对象,比如一个围棋或者象棋程序中的旗子,这些旗子外形都差不多,只是演示或者是上面刻的内容不一样,若此时使用传…

【spring】@RequestBody注解学习

RequestBody介绍 RequestBody 是 Spring Framework 中的一个注解,用于将 HTTP 请求的正文绑定到处理方法的参数上。这个注解通常用于处理 POST 或 PUT 请求,这些请求通常包含 JSON 或 XML 格式的数据。 RequestBody 将 HTTP 请求的正文内容转换成指定的…

前端vue项目遇到的问题01——那些初级问题

前端vue项目遇到的问题01——那些初级问题 1. npm install 问题1.1 依赖冲突1.1.1 详细问题1.1.2 报错原因1.1.3 解决问题1.1.3.1 方式1——无视冲突1.1.3.1 方式2——更换依赖版本 1.2 nodejs版本问题1.3 node版本正确的情况(audit问题)(这个…

OpenH264 编解码器介绍

思科 思科系统(英语:Cisco Systems, Inc.)是一间跨国际综合技术企业,总部设于加州硅谷;思科开发、制作和售卖网络硬件、软件、通信设备等高科技产品及服务,并透过子公司(例子有OpenDNS、Webex、…

【C语言】整型提升与char取值范围

整型提升介绍 C语言中整型算术运算总是至少以缺省(默认)整型类型的精度来进行的。为了获得这个精度,表达式中字符、短整型操作数在使用前被转换为普通整型。而这个过程是悄悄发生的。 整型提升的意义: 表达式的整型运算要在CPU…

小米财报:业绩远超预期,汽车推着手机跑!

随着一季度财报陆续出炉,企业间的分化越来越明显。 新环境下,很多公司都陷入停滞时,去讨论“掉队”已经没有多少意义,现在真正值得我们关注的,是那些在逆风情况下,还能“领先”的企业。毫无疑问&#xff0…

小程序主体变更是通过迁移吗?是需要2个小程序吗?

小程序迁移变更主体有什么作用?好多朋友都想做小程序迁移变更主体,但是又不太清楚具体有啥用,今天我就来详细说说。首先,小程序迁移变更主体最重要的作用就是可以修改主体。比如你的小程序原来是 A 公司的,现在 A 公司…

2024-5-9-从0到1手写配置中心Config之@ConfigurationProperties热更新

在PropertySourcesProcessor中,需要通过http从config-server获取配置。 使用ConfigMeta包装服务信息 在MidnightConfigService接口中添加默认实现类 继承MidnightRepositoryChangeListener接口;获取默认的MidnightRepository;创建MidnightCo…

12306技术内幕

公司内部做的一次技术分享 文章目录 12306的成就12306系统特点12306系统难点解决思路产品角度技术角度余票库存的表如何设计? 抢票软件推荐巨人的肩膀 对于未公开的技术部分,只能结合已公开的信息,去做大胆的猜想。 本文提到的一些解决方案&…

chatgpt线性差值 将直线渐变颜色

color(x)(x-x1)/(x2-x1) 与gpt给出的 这个位置比例可以表示为d/L是概念相同 x-x1是计算当前点距离起点距离,x2-x1是计算长度 例如,如果我们在直线上距离起点A的距离为d,整条直线的长度为L 用数学方式解释 2024/5/25 18:54:30 当我们要在一…

【算法例题】递推与递归

刚讲完递推和递归,趁热打铁,给大家出点例题。 没学过的,先去学一下。 【算法】递推&递归https://blog.csdn.net/yangyanbin_sam/article/details/139182393?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22…

⌈ 传知代码 ⌋ 基于扩散模型的无载体图像隐写术

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

小红书无限加群脚本无需ROOT【使用简单无教程】

小红书无限加群脚本无需ROOT,包含了对应的小红书版本【使用简单无教程】 链接:https://pan.baidu.com/s/1HkLhahmHDFMKvqCC3Q3haA?pwd6hzf 提取码:6hzf

ISCC 2024 部分wp

文章目录 一、Misc1、Number_is_the_key2、FunZip3、擂台—— 重“隐”;4、RSA_KU5、时间刺客6、成语学习7、 精装四合一8、钢铁侠在解密9、有人让我给你带个话10、Magic_Keyboard11、工业互联网模拟仿真数据分析 二、Web1、还没想好名字的塔防游戏2、代码审计3、原…

【C++】<图形库> 三人成棋(面向对象写法)

目录 一、游戏需求 二、程序架构 三、代码实现 四、实现效果 五、已知BUG 一、游戏需求 构建一个五子棋游戏,在自定义棋盘宽度和高度的基础上,实现三人对战功能,并且能判定谁输谁赢。 二、程序架构 (1) 对象分析: 【1】 需…

人工智能-YOLOv10-行人和车辆检测-yolo改进测距测速代码和原理

YOLOv10: 实时端到端目标检测技术的全新突破 YOLOv10代表了实时目标检测领域的重大进展,是YOLO系列模型的最新迭代,专为追求极致效率与精度平衡的应用场景设计。此项目由北京大学机器智能研究组(THU-MIG)的Ao Wang、Hui Chen、Li…