- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有两个著名的背包问题:
1) 给定n
项,每个项都有其权重
和成本
。我们需要选择适合我们背包且总成本最高的元素。使用动态规划
可以轻松解决。
2) Fractional knapsack: 和第一个一样,但是我们不能只带整个元素,而是可以带一部分。这个问题可以用贪心算法
轻松解决。
假设我们正在使用第二个问题中的贪心算法
来解决第一个问题。我如何证明我们将获得的解决方案不会比最佳解决方案差两倍?
最佳答案
据我所知,贪婪的解决方案可以尽可能低效。假设您有一个容量为 1
和两个 (n = 2
) 元素的背包:
item weight cost density
------------------------
A ε ε 1 <- greedy choice
B 1 1-ε 1-ε <- optimal choice
所以当最优解是以 1-ε
成本获取 B
。选择的(贪心)解决方案是
(1-ε)/ε = 1/ε - 1
比最佳效率低很多倍。使 ε
尽可能少(例如,ε = 1e-100
),并且有一个非常低效的贪婪解决方案。
编辑:如果只有整数值,只需缩放上面的示例:你有一个容量为 X
和两个(n = 2
) 项
item weight cost density
------------------------
A 1 1 1 <- greedy choice
B X X-1 1-1/X <- optimal choice
在这种情况下,贪心的解决方案是
(X - 1) / 1 = X - 1
比最佳效率低很多倍。最后,使 X
足够大(例如,X = 1e100
)
关于algorithm - 用分数背包法求解背包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41119863/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我有实体: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_I
我正在尝试计算二维多边形的表面法线。我正在使用 OpenGL wiki 中的 Newell 方法来计算表面法线。 https://www.opengl.org/wiki/Calculating_a_S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我这里有以下 XML: Visa, Mastercard, , , , 0, Discover, American Express siteonly, Buyer Pay
即将发生的 Google 政策变更迫使我们实现一个对话框,以通知欧盟用户有关 Cookie/设备标识符用于广告和分析的情况。我只想向欧盟用户显示此对话框。我不想使用额外的权限(例如 android.p
本文分享自华为云社区《华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇》,作者:华为云PaaS服务小智。 本期核心观点 上车:AGI是未来5~10年内,每个人都无法回避的技
我有一个与酒精相关的网站,需要先验证年龄,然后才能让他们进入该网站。我使用 HttpModule 来执行此操作,该模块检查 cookie,如果未设置,我会将它们重定向到验证页面。我验证他们的年龄并存储
在欧盟,我们有一项法律,要求网页请求存储 cookie 的许可。我们大多数人都了解 cookie 并同意它们,但仍然被迫在任何地方明确接受它们。所以我计划编写这个附加组件(ff & chrome),它
以下在 C 和/或 C++ 中是否合法? void fn(); inline void fn() { /*Do something here*/ } 让我担心的是,第一个声明看起来暗示函数将被定义
我是一名优秀的程序员,十分优秀!