一个框包含3个数字属性。这些属性是最大总数(正常+稀有)对象,最大正常对象,最大稀有对象。现在,例如,我有4个盒子。
现在,我必须将8个普通对象和5个稀有对象放入这些框中。
我可以使用的最小盒子数量是多少?通过编程,我可以通过蛮力/递归搜索来实现。在找出所有可能的盒子组合之后,我将根据盒子中浪费最少的空间对数组/列表进行排序。是否有更程序上有效的或数学的方法来找出要使用的最小盒子数量?
我认为一种有效的方法是:
假设您有“ n”个框,“ a”个普通对象和“ b”个稀有对象,以及a> b。
X
。Y
。a>b
,请填充列表中最大的框X
。a
(剩余)> b
(剩余),如果是,则将它们放在列表中的第二大框内X
,否则将它们放在列表中的第二大框内Y
(如果填充的框也是列表中最大的框Y
)。a
和b
都0
。虽然这并不总是为您提供所有情况下的确切最小装箱数,但通常对于大量装箱都可以很好地工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句