php - 将 y 元素的 x 列表合并到每个 z 元素的上限的算法

标签 php algorithm math merge

基本上我需要一些适合以下问题的算法:

我有 5 个列表:每个列表有 10、30、40、40 和 50 个元素 元素上限为 80 个 我现在想要实现的是: 3 个列表:10、80 和 80 个元素

40 和 40 合并为 80,30 和 50 合并为 80,具有 10 个元素的列表保留为第三个结果列表 这意味着我想以某种方式合并所有列表,但上限为 80 个元素,所以我实际上只有我真正需要的列表

这不是排序的问题,只是合并的问题 不可能拆分列表,列表的元素应始终保持在一起

希望您能帮助我,谢谢!

最佳答案

这听起来像 bin packing problem ..这是一个 NP 难题,因此如果没有一些启发式方法,您无法快速实现这一目标。维基百科页面有一些代码可能可以帮助您 - 现在您已经知道了它的名称,也许您可​​以搜索更多内容。

关于php - 将 y 元素的 x 列表合并到每个 z 元素的上限的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603712/

相关文章:

php - 发布内容后立即从 mysql 显示时间?

php - Silverstripe:无法从后端删除页面

python - 在第 n 次出现换行符后拆分大字符串的大多数 pythonic 方法

c++ - 是否有相当于Python的fractions.Fraction(bignum/任意精度分数/有理数类)?

javascript - 一个月内的小时数的数学函数

php - 运行复杂 SQL 时服务器 CPU 百分比变得非常高

PHP mail()发送2份

算法问题分类

c - 打印矩阵

javascript - 在 javascript 中生成随机整数的最快方法是什么?