可以使用指定重量的背包问题

Posted

技术标签:

【中文标题】可以使用指定重量的背包问题【英文标题】:Knapsack problem with specified number of weights can be used 【发布时间】:2011-03-27 19:44:51 【问题描述】:

我有一个背包问题,指定背包的重量和重量计数。

当背包容量为C,需要的重量计数为N并且有一个重量列表时,我需要一个算法将重量打包到背包中。权重排序无关紧要。算法最好是递归的。

例如: 我的背包女巫只能装 3 个重量,它们的重量必须是 10,我有这些重量:9、8、7、2、1。正确(也是唯一)答案是 7、2、1。

最好有人写伪代码,但如果是任何常见的编程语言都可以。

附:任何提示它的赞赏以及:)

[编辑]我需要一个算法,它给出的答案正好是 N 个权重计数,其中权重正好是 C。

【问题讨论】:

【参考方案1】:

这是0-1背包问题,可以在伪多项式时间内使用动态规划来解决。

请参阅Wikipedia's knapsack problem article,了解有关如何使用动态规划解决问题的说明。

请参阅 these CS lecture slides 了解演练和伪代码。

【讨论】:

【参考方案2】:

http://en.wikipedia.org/wiki/Knapsack_problem 应该可以帮助您。他们也有算法的伪代码。

【讨论】:

***中没有精确权重问题的算法。你甚至读过我的问题吗? 我做到了。我想说服您阅读有关该主题的更多内容,然后再提出更精确的问题,而不是期望我们提出完整的算法。

以上是关于可以使用指定重量的背包问题的主要内容,如果未能解决你的问题,请参考以下文章

背包算法变量

简单背包问题

背包问题(贪心策略)

带有多个袋子和只有重量的物品的背包

java实现动态规划之背包问题

图解算法-怎么用动态规划解决0-1背包问题