我正在尝试编写一个脚本,将产品分类到包中。我有一个包含产品的数组($products),它包含长度、宽度、高度和重量。有三个不同的包,条件将如下所示
small: length <= 17, width <= 14, height <= 4, weight <= 2
medium: length <= 26, width <= 18, height <= 4, weight <= 2
large: length <= 35, width <= 23, height <= 4, weight <= 2因此,现在脚本需要检查小是否足够所有的产品,如果不是,那么中,如果不是,那么大。如果大的还不够,那么我想让脚本检查哪些产品组合最适合大的包,然后删除这些元素,并继续检查数组中的其余元素,并将它们放入适当的包中。简而言之:它应该在不浪费空间的情况下将产品分类到尽可能大的包中。
我已经开始使用if语句来查看订单中产品的总长度和宽度是否适合不同的大小,但困难的部分是为一个包找到产品的最佳组合,并将它们从数组中删除以保持对其余产品的排序。
有什么想法吗?
发布于 2011-04-21 07:05:44
这个问题以前已经被问过了。在"3 dimensional bin packing algorithms“和"3d bin packing algorithm”上可以找到一些有用的信息。
发布于 2011-04-21 07:01:58
这个问题被称为Bin Packaging问题(也称为背包问题)。我找不到任何php示例,所以我认为制作这样的东西有点困难……
https://stackoverflow.com/questions/5737304
复制相似问题