我的数据库中有一个项目列表,带有名称和相应的输出。 然后我必须对列表进行排序并最大化各种容器中的输出。
所以我有一个这样的列表:
List1 100
List2 120
List3 125
List4 101
List5 100
List6 106
List7 110
...
List150 110
我有 3 个容器,每个容器有 4 个插槽。我需要最大化每个容器中的输出,并使它们尽可能靠近以达到最大输出。 所以我不能拿top 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
我正试图弄清楚如何解决这个问题,但我被困住了。
目前我的流程是: 将列表从大到小排序 取我需要从顶部填充的空间数(容器 * 插槽) 添加数字,然后取平均值。这将给我我的目标,或者至少是一个起点。 我不知道如何着手实际填补 Blob 并四处移动。我当然可以手动完成,但不知道如何以编程方式实现它。
感谢任何帮助!
最佳答案
像以前一样对列表项进行排序,然后只填充每个容器循环方式,一次一个地让每个容器成为列表中的顶部项目,直到它们装满。
这假设最大化输出是第一要务,然后将它们尽可能接近相同作为第二要务。如果您对每个容器的输出之间必须有多近有一定的要求,那么它会变得更加复杂。
关于php - 需要帮助构建列表以最大化整体输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23851649/