【发布时间】:2015-05-07 17:15:48
【问题描述】:
我有这个数组,
Array
(
[0] => Array
(
[id] => 1
[name] => Item 1
[price] => 10
[weight] => 200
)
[1] => Array
(
[id] => 2
[name] => Item 2
[price] => 100
[weight] => 20
)
[2] => Array
(
[id] => 3
[name] => Item 3
[price] => 30
[weight] => 300
)
[3] => Array
(
[id] => 4
[name] => Item 4
[price] => 20
[weight] => 500
)
[4] => Array
(
[id] => 6
[name] => Item 6
[price] => 40
[weight] => 10
)
[5] => Array
(
[id] => 7
[name] => Item 7
[price] => 200
[weight] => 10
)
)
我想把它一分为二,所以我得到了这个结果,
Array
(
[0] => Array
(
[0] => Array
(
[id] => 1
[name] => Item 1
[price] => 10
[weight] => 200
)
[1] => Array
(
[id] => 3
[name] => Item 3
[price] => 30
[weight] => 300
)
[2] => Array
(
[id] => 7
[name] => Item 7
[price] => 200
[weight] => 10
)
)
[1] => Array
(
[0] => Array
(
[id] => 4
[name] => Item 4
[price] => 20
[weight] => 500
)
[1] => Array
(
[id] => 6
[name] => Item 6
[price] => 40
[weight] => 10
)
[2] => Array
(
[id] => 2
[name] => Item 2
[price] => 100
[weight] => 20
)
)
)
有什么想法吗?
这其中的难点在于,每个包裹的总价不得超过250。而每个包裹的总重量必须尽可能均匀(即使认为不可能)。你可以在这张照片中看到我的意思,
name weight price
package 1
Item 1 200 10
Item 3 300 30
Item 7 10 200
(total) 510 240
package 2
Item 4 500 20
Item 6 10 40
Item 2 20 100
(total) 530 160
那么是否可以在这两个包裹之间移动物品,以便总重量“均匀”分布?如果不手动“移动”它们,似乎无法实现。我想不出通过自动程序实现目标的任何方法。可以吗?
【问题讨论】:
-
听起来像是一个动态规划问题
-
a dynamic programming problem是什么意思? -
你搞定了吗...?
标签: php arrays multidimensional-array shopping-cart