我有一组相同大小的线性“容器”。对于这个例子,假设我有 10 个容器,最多可以容纳 28 个最大值。这些容器连续填充不同值的传入对象。对象将具有已知的最小值和最大值,对于此示例,最小值为 3.5,最大值为 15。对象的大小可以介于此最小值和最大值之间。这些元素以未知顺序离开容器。如果任何容器中没有足够的空间容纳下一个传入的对象,它将被拒绝。
我正在寻找一种最有效地利用容器空间并最大限度地减少被拒绝对象数量的算法。
最佳答案
绝对最佳解决方案将取决于实际大小、传入对象的分布等。我强烈建议将您在现实世界中体验到的真实分布设置为测试代码,并针对它尝试不同的算法。
我想尝试的明显启发式方法是始终将每个对象放入它可以容纳的最满的容器中。
关于充分利用多个线性容器空间的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260177/