通常打包要求有:1、码长限制;2、色光(A、B色);3、装箱限量(就是限制这一箱装多少米);
其中码长通常为一范围, 色光为:A、B、C、D之类例:现假设有一批货,代号为:008
1、码长要求为 ≥30米;
2、装箱限量≤200米
原始数据库中的数据(图1):
序号 数量(米) 色光
1 60 A
2 70 B
3 80 A
4 20 A
5 40 B
6 50 C
7 70 A
8 30 A
9 50 B
10 18 B 开始计算结果如下(图2)序号 b 数量(米) 色光 包号
1 60 A 1
3 80 A 1
7 70 A 2
8 30 A 2
2 70 B 3
5 40 B 3
9 50 B 3
6 50 C 4
4 20 A 5
10 18 B 5注:1、在上例中,先剔除码长不符合要求的,然后再成件。
2、色光相同的要成在一个件中。
a.刚开始先把码长不符合要求的(码长要求为 ≥30米),如4号和10号放最下面
b。在色光A中按顺序数量相加,如60+80<200,若60+80+70=210>200,不符合要求,则包号为1。再次在色光为A中剩下的按顺序数量相加,如70+30=100<200
则包号为2
同理B,C
c.码长不符合要求的不管多少通统定为最后的数字
其中码长通常为一范围, 色光为:A、B、C、D之类例:现假设有一批货,代号为:008
1、码长要求为 ≥30米;
2、装箱限量≤200米
原始数据库中的数据(图1):
序号 数量(米) 色光
1 60 A
2 70 B
3 80 A
4 20 A
5 40 B
6 50 C
7 70 A
8 30 A
9 50 B
10 18 B 开始计算结果如下(图2)序号 b 数量(米) 色光 包号
1 60 A 1
3 80 A 1
7 70 A 2
8 30 A 2
2 70 B 3
5 40 B 3
9 50 B 3
6 50 C 4
4 20 A 5
10 18 B 5注:1、在上例中,先剔除码长不符合要求的,然后再成件。
2、色光相同的要成在一个件中。
a.刚开始先把码长不符合要求的(码长要求为 ≥30米),如4号和10号放最下面
b。在色光A中按顺序数量相加,如60+80<200,若60+80+70=210>200,不符合要求,则包号为1。再次在色光为A中剩下的按顺序数量相加,如70+30=100<200
则包号为2
同理B,C
c.码长不符合要求的不管多少通统定为最后的数字
比如:
色光为A的有如下码长数据:
120
110
90
80
如按楼主的算法,那么
30<120<200
30<120+110>200
则
120 包号 1
30<110+90=200
则
110 包号 2
90 包号 2
乘下有
80 包号 3很明显我们可以排得如下包号:
120 1
80 1
110 2
90 2
这算法还简单么?
对你的例子,如果是按顺序来,那么有3个包号,如果是最优的话,那么是两个包号,你可以把两个算法都写一下吗,急用????