php - 需要帮助构建列表以最大化整体输出

标签 php mysql

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

所以我有一个这样的列表:

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/

相关文章:

python - 如何在python中使用带有mysql变量的select语句

PHP MYSQL 运行查询两次

mysql - 高效查询以从 sql 中的事件日志表获取步骤持续时间到累积快照事实

php - 几个 PHP/MySQL 问题

php - 无法在mysql中保存增量值

mysql - 从 woocommerce 数据库中删除所有 sku

php - 如何使 FileUpload 对象处理 Symfony2 中的多个文件?

php - Livewire 组件转换为另一个 livewire 组件

php - 无法打开流 : No such file or directory , 权限问题

javascript - 有没有办法像在 JavaScript 中那样在 PHP 中使用 or 运算符?