需要帮助建立列表,以最大限度地提高整体输出


Need Help Building List to Maximize Overall Output

我的数据库中有一个项目列表,具有名称和相应的输出。然后,我必须对列表进行排序,并在各种容器中最大化输出。

我有一个这样的列表:

List1     100
List2     120
List3     125
List4     101
List5     100
List6     106
List7     110
 ...
List150   110

我有3个容器,每个有4个槽。我需要最大限度地提高每个容器的输出,并保持它们相当接近在一起的最大输出。所以我不能把上面的4个放在第一个容器里,否则它会在最后一个容器满之前就满了,这样会造成问题。我需要它们以大致相同的速度填充。

结果会是类似于

Container 1
List3  125
List8  118
List27 111
List7  110
Container 2
List2  120
List33 120
List18 115
List42 110
Container 3
List14 120
List61 118
List52 119
List99 108

我正在想办法解决这个问题,但是我被卡住了。

到目前为止,我的过程是:对列表从大到小排序取我需要从顶部填充的空间数量(容器*槽)把这些数字相加,然后取平均值。这样我就有目标了,至少有个起点。我不知道怎么填充这些点,怎么移动。我当然可以手动完成,但不知道如何通过编程实现它。

任何帮助都是感激的!

像之前一样对列表项进行排序,并以轮循的方式填充每个容器,每次给每个容器一个列表中的顶部项,直到它们被填满。

这里假设最大化输出是第一优先级,然后保持它们尽可能接近相同。如果您对每个容器的输出之间的距离有一定的要求,那么它就变得更复杂了。