这听起来像是一个简单的问题,但我无法得到一个好的解决方案。该问题类似于背包问题,但稍作修改。
我有一个容量固定的袋子,比如说 C。我们有一个物品清单及其重量。所有物品的总重量大于 C。我怎样才能在袋子中装下最大数量的物品(也尽量装满袋子)?
我想过对列表进行排序并选择项目,直到袋子完全装满,但下面的例子反驳了这个想法
C = 100 和 L = 50、40、20、30。
当我排序时,我得到 20、30、40、50,因此我的分配将是 (20+30+40) = 90。但我们可以获得更好的组合 (20+30+50) = 100。
这个问题可以通过将这个问题转化为背包来解决,方法是赋予每个物品与其重量相等的重量。还有其他算法吗?