我正在开发一个在 Java中实现“全箱打包”算法的项目。这个算法名称来自决策 A-Level Maths - 但我在互联网上找不到太多关于它的信息。
算法描述如下:
- 使用观察来找到可以装满垃圾箱的物品。先把这些东西打包。
- 使用 first-fit 算法(我已经为其编写了方法)来打包其余的项目。
所以我有两个问题:
- 这与所谓的“最佳拟合”算法相同吗?
- 如何在程序中实现这一点?(具体来说,找到可以填满垃圾箱的组合的最佳方法是什么?)
在我的程序中,项目将是数字,并且最大数字数和 bin 数都将限制为 6。
我实际上还没有编写任何代码,因为我不确定如何首先实现它 - 但我编辑了第一篇文章以展示我正在考虑的一种方式。
编辑 - 假设我拥有的 6 个数字是:{1、2、3、4、5、6}。
我想到的方法是首先将数字按降序排序,然后有 2 个循环来尝试所有可能的组合,看看它们中的任何一个是否填满一个箱子(例如 1 & 2、1 & 3、1 & 4、1 & 5, 1 & 6 然后是 2 & 3, 2 & 4 等等),这是一个好方法吗?