需要帮助构建列表以最大化总体输出

时间:2014-05-25 03:14:38

标签: php mysql

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

所以我有一个列表:

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

我正试图弄清楚如何解决这个问题而且我被困住了。

我到目前为止的流程是: 从最大到最小排序列表 从顶部获取我需要填充的空间数量(容器*槽) 添加数字和平均值。这将给我我的目标,或者至少是一个开始的地方。 我不知道怎么去实际填充斑点并改变周围的事物。我当然可以手动完成,但不知道如何以编程方式实现它。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

像以前一样对列表项进行排序,只需填充每个容器的循环样式,一次一个地为每个容器提供列表中的顶级项目,直到它们已满。

这假设尽管最大化输出是第一优先级,然后使它们尽可能接近相同。如果你对每个容器的出口必须彼此接近有一定的要求那么它会变得更加复杂。