求助:一道比较难的计算题?
一批铁丝,数量不限,每一根铁丝长 1650 mm ,现需要截取下列品种、长度、数量的铁丝:
品种 长度/mm 数量/根
a1 300 10
a2 250 10
a3 200 10
a4 150 10
a5 100 10
注:铁丝的长度、品种的个数、品种的长度、需要数量都是变量。
怎样计算,在达到需要截取的品种、长度、数量的前提下,使用的铁丝根数最少,浪费的最小?
求助:怎样用SAS编写这样的计算程序? 哪里有用SAS编写的这方面的资料?
谢谢!!!
真让人肚子痛呀!
数据洗涤不成。
Obs a1 i1 a2 i2 a3 i3 a4 i4 a5 i5 x
1 100 1 150 1 200 3 250 2 300 1 1650
2 100 1 150 2 200 1 250 3 300 1 1650
3 100 1 150 2 200 2 250 1 300 2 1650
4 100 1 150 4 200 2 250 1 300 1 1650
5 100 2 150 1 200 1 250 2 300 2 1650
6 100 2 150 2 200 3 250 1 300 1 1650
7 100 2 150 3 200 1 250 2 300 1 1650
8 100 3 150 1 200 2 250 2 300 1 1650
9 100 3 150 2 200 1 250 1 300 2 1650
10 100 3 150 4 200 1 250 1 300 1 1650
11 100 4 150 2 200 2 250 1 300 1 1650
12 100 5 150 1 200 1 250 2 300 1 1650
13 100 6 150 2 200 1 250 1 300 1 1650
[此贴子已经被作者于2009-1-17 23:17:34编辑过]
我有一个思路,但不知怎样编程? 还望高人赐教!!
先截取长度最长的品种a1,再去截取短的品种。
a1 | 数量 | a2 | 数量 | a3 | 数量 | a4 | 数量 | a5 | 数量 | 长度合计 | |
第1根截取 | 300 | 5 | 150 | 1 | 1650 | ||||||
第2根截取 | 300 | 5 | 150 | 1 | 1650 | ||||||
第3根截取 | 300 | 250 | 5 | 200 | 2 | 1650 | |||||
第4根截取 | 250 | 5 | 200 | 2 | 1650 | ||||||
第5根截取 | 200 | 6 | 150 | 3 | 1650 | ||||||
第6根截取 | 150 | 5 | 100 | 9 | 1650 | ||||||
第7根截取 | 100 | 1 | 100 | ||||||||
品种数量合计 | 10 | 10 | 10 | 10 | 10 |
如果每根铁丝长度为1550mm,则:
a1 | 数量 | a2 | 数量 | a3 | 数量 | a4 | 数量 | a5 | 数量 | 长度合计 | |
第1根截取 | 300 | 4 | 200 | 1 | 150 | 1 | 1550 | ||||
第2根截取 | 300 | 4 | 250 | 1 | 100 | 1 | 1550 | ||||
第3根截取 | 300 | 2 | 250 | 3 | 200 | 1 | 1550 | ||||
第4根截取 | 250 | 4 | 150 | 3 | 100 | 1 | 1550 | ||||
第5根截取 | 250 | 2 | 200 | 4 | 150 | 1 | 100 | 1 | 1550 | ||
第6根截取 | 200 | 3 | 150 | 5 | 100 | 2 | 1550 | ||||
第7根截取 | 200 | 1 | 150 | 100 | 5 | 700 | |||||
品种数量合计 | 10 | 10 | 10 | 10 | 10 |
如果一个一个的这样套,就太麻烦。只有编程计算。
Obs a1 i1 a2 i2 a3 i3 a4 i4 a5 i5 x
1 100 0 150 0 200 0 250 3 300 3 1650
2 100 0 150 0 200 1 250 1 300 4 1650
3 100 0 150 0 200 2 250 5 300 0 1650
4 100 0 150 0 200 3 250 3 300 1 1650
5 100 0 150 0 200 4 250 1 300 2 1650
6 100 0 150 0 200 7 250 1 300 0 1650
7 100 0 150 1 200 0 250 0 300 5 1650
8 100 0 150 1 200 0 250 6 300 0 1650
9 100 0 150 1 200 1 250 4 300 1 1650
10 100 0 150 1 200 2 250 2 300 2 1650
11 100 0 150 1 200 3 250 0 300 3 1650
12 100 0 150 1 200 5 250 2 300 0 1650
13 100 0 150 1 200 6 250 0 300 1 1650
14 100 0 150 2 200 0 250 3 300 2 1650
15 100 0 150 2 200 1 250 1 300 3 1650
16 100 0 150 2 200 3 250 3 300 0 1650
17 100 0 150 2 200 4 250 1 300 1 1650
18 100 0 150 3 200 0 250 0 300 4 1650
19 100 0 150 3 200 1 250 4 300 0 1650
20 100 0 150 3 200 2 250 2 300 1 1650
21 100 0 150 3 200 3 250 0 300 2 1650
22 100 0 150 3 200 6 250 0 300 0 1650
23 100 0 150 4 200 0 250 3 300 1 1650
24 100 0 150 4 200 1 250 1 300 2 1650
25 100 0 150 4 200 4 250 1 300 0 1650
26 100 0 150 5 200 0 250 0 300 3 1650
27 100 0 150 5 200 2 250 2 300 0 1650
28 100 0 150 5 200 3 250 0 300 1 1650
29 100 0 150 6 200 0 250 3 300 0 1650
30 100 0 150 6 200 1 250 1 300 1 1650
31 100 0 150 7 200 0 250 0 300 2 1650
32 100 0 150 7 200 3 250 0 300 0 1650
33 100 0 150 8 200 1 250 1 300 0 1650
34 100 0 150 9 200 0 250 0 300 1 1650
35 100 1 150 0 200 0 250 5 300 1 1650
36 100 1 150 0 200 1 250 3 300 2 1650
37 100 1 150 0 200 2 250 1 300 3 1650
38 100 1 150 0 200 4 250 3 300 0 1650
39 100 1 150 0 200 5 250 1 300 1 1650
40 100 1 150 1 200 0 250 2 300 3 1650
41 100 1 150 1 200 1 250 0 300 4 1650
42 100 1 150 1 200 2 250 4 300 0 1650
43 100 1 150 1 200 3 250 2 300 1 1650
44 100 1 150 1 200 4 250 0 300 2 1650
45 100 1 150 1 200 7 250 0 300 0 1650
46 100 1 150 2 200 0 250 5 300 0 1650
47 100 1 150 2 200 1 250 3 300 1 1650
48 100 1 150 2 200 2 250 1 300 2 1650
49 100 1 150 2 200 5 250 1 300 0 1650
50 100 1 150 3 200 0 250 2 300 2 1650
51 100 1 150 3 200 1 250 0 300 3 1650
52 100 1 150 3 200 3 250 2 300 0 1650
53 100 1 150 3 200 4 250 0 300 1 1650
54 100 1 150 4 200 1 250 3 300 0 1650
55 100 1 150 4 200 2 250 1 300 1 1650
56 100 1 150 5 200 0 250 2 300 1 1650
57 100 1 150 5 200 1 250 0 300 2 1650
58 100 1 150 5 200 4 250 0 300 0 1650
59 100 1 150 6 200 2 250 1 300 0 1650
60 100 1 150 7 200 0 250 2 300 0 1650
61 100 1 150 7 200 1 250 0 300 1 1650
62 100 1 150 9 200 1 250 0 300 0 1650
63 100 2 150 0 200 0 250 1 300 4 1650
64 100 2 150 0 200 1 250 5 300 0 1650
65 100 2 150 0 200 2 250 3 300 1 1650
66 100 2 150 0 200 3 250 1 300 2 1650
67 100 2 150 0 200 6 250 1 300 0 1650
68 100 2 150 1 200 0 250 4 300 1 1650
69 100 2 150 1 200 1 250 2 300 2 1650
70 100 2 150 1 200 2 250 0 300 3 1650
71 100 2 150 1 200 4 250 2 300 0 1650
72 100 2 150 1 200 5 250 0 300 1 1650
73 100 2 150 2 200 0 250 1 300 3 1650
74 100 2 150 2 200 2 250 3 300 0 1650
75 100 2 150 2 200 3 250 1 300 1 1650
76 100 2 150 3 200 0 250 4 300 0 1650
77 100 2 150 3 200 1 250 2 300 1 1650
78 100 2 150 3 200 2 250 0 300 2 1650
79 100 2 150 3 200 5 250 0 300 0 1650
80 100 2 150 4 200 0 250 1 300 2 1650
81 100 2 150 4 200 3 250 1 300 0 1650
82 100 2 150 5 200 1 250 2 300 0 1650
83 100 2 150 5 200 2 250 0 300 1 1650
84 100 2 150 6 200 0 250 1 300 1 1650
85 100 2 150 7 200 2 250 0 300 0 1650
86 100 2 150 8 200 0 250 1 300 0 1650
87 100 3 150 0 200 0 250 3 300 2 1650
88 100 3 150 0 200 1 250 1 300 3 1650
89 100 3 150 0 200 3 250 3 300 0 1650
90 100 3 150 0 200 4 250 1 300 1 1650
91 100 3 150 1 200 0 250 0 300 4 1650
92 100 3 150 1 200 1 250 4 300 0 1650
93 100 3 150 1 200 2 250 2 300 1 1650
94 100 3 150 1 200 3 250 0 300 2 1650
95 100 3 150 1 200 6 250 0 300 0 1650
96 100 3 150 2 200 0 250 3 300 1 1650
97 100 3 150 2 200 1 250 1 300 2 1650
98 100 3 150 2 200 4 250 1 300 0 1650
99 100 3 150 3 200 0 250 0 300 3 1650
100 100 3 150 3 200 2 250 2 300 0 1650
101 100 3 150 3 200 3 250 0 300 1 1650
102 100 3 150 4 200 0 250 3 300 0 1650
103 100 3 150 4 200 1 250 1 300 1 1650
104 100 3 150 5 200 0 250 0 300 2 1650
105 100 3 150 5 200 3 250 0 300 0 1650
106 100 3 150 6 200 1 250 1 300 0 1650
107 100 3 150 7 200 0 250 0 300 1 1650
108 100 3 150 9 200 0 250 0 300 0 1650
109 100 4 150 0 200 0 250 5 300 0 1650
110 100 4 150 0 200 1 250 3 300 1 1650
111 100 4 150 0 200 2 250 1 300 2 1650
112 100 4 150 0 200 5 250 1 300 0 1650
113 100 4 150 1 200 0 250 2 300 2 1650
114 100 4 150 1 200 1 250 0 300 3 1650
115 100 4 150 1 200 3 250 2 300 0 1650
116 100 4 150 1 200 4 250 0 300 1 1650
117 100 4 150 2 200 1 250 3 300 0 1650
118 100 4 150 2 200 2 250 1 300 1 1650
119 100 4 150 3 200 0 250 2 300 1 1650
120 100 4 150 3 200 1 250 0 300 2 1650
121 100 4 150 3 200 4 250 0 300 0 1650
122 100 4 150 4 200 2 250 1 300 0 1650
123 100 4 150 5 200 0 250 2 300 0 1650
124 100 4 150 5 200 1 250 0 300 1 1650
125 100 4 150 7 200 1 250 0 300 0 1650
126 100 5 150 0 200 0 250 1 300 3 1650
127 100 5 150 0 200 2 250 3 300 0 1650
128 100 5 150 0 200 3 250 1 300 1 1650
129 100 5 150 1 200 0 250 4 300 0 1650
130 100 5 150 1 200 1 250 2 300 1 1650
131 100 5 150 1 200 2 250 0 300 2 1650
132 100 5 150 1 200 5 250 0 300 0 1650
133 100 5 150 2 200 0 250 1 300 2 1650
134 100 5 150 2 200 3 250 1 300 0 1650
135 100 5 150 3 200 1 250 2 300 0 1650
136 100 5 150 3 200 2 250 0 300 1 1650
137 100 5 150 4 200 0 250 1 300 1 1650
138 100 5 150 5 200 2 250 0 300 0 1650
139 100 5 150 6 200 0 250 1 300 0 1650
140 100 6 150 0 200 0 250 3 300 1 1650
141 100 6 150 0 200 1 250 1 300 2 1650
142 100 6 150 0 200 4 250 1 300 0 1650
143 100 6 150 1 200 0 250 0 300 3 1650
144 100 6 150 1 200 2 250 2 300 0 1650
145 100 6 150 1 200 3 250 0 300 1 1650
146 100 6 150 2 200 0 250 3 300 0 1650
147 100 6 150 2 200 1 250 1 300 1 1650
148 100 6 150 3 200 0 250 0 300 2 1650
149 100 6 150 3 200 3 250 0 300 0 1650
150 100 6 150 4 200 1 250 1 300 0 1650
151 100 6 150 5 200 0 250 0 300 1 1650
152 100 6 150 7 200 0 250 0 300 0 1650
153 100 7 150 0 200 1 250 3 300 0 1650
154 100 7 150 0 200 2 250 1 300 1 1650
155 100 7 150 1 200 0 250 2 300 1 1650
156 100 7 150 1 200 1 250 0 300 2 1650
157 100 7 150 1 200 4 250 0 300 0 1650
158 100 7 150 2 200 2 250 1 300 0 1650
159 100 7 150 3 200 0 250 2 300 0 1650
160 100 7 150 3 200 1 250 0 300 1 1650
161 100 7 150 5 200 1 250 0 300 0 1650
162 100 8 150 0 200 0 250 1 300 2 1650
163 100 8 150 0 200 3 250 1 300 0 1650
164 100 8 150 1 200 1 250 2 300 0 1650
165 100 8 150 1 200 2 250 0 300 1 1650
166 100 8 150 2 200 0 250 1 300 1 1650
167 100 8 150 3 200 2 250 0 300 0 1650
168 100 8 150 4 200 0 250 1 300 0 1650
169 100 9 150 0 200 0 250 3 300 0 1650
170 100 9 150 0 200 1 250 1 300 1 1650
171 100 9 150 1 200 0 250 0 300 2 1650
172 100 9 150 1 200 3 250 0 300 0 1650
173 100 9 150 2 200 1 250 1 300 0 1650
174 100 9 150 3 200 0 250 0 300 1 1650
175 100 9 150 5 200 0 250 0 300 0 1650
176 100 10 150 0 200 2 250 1 300 0 1650
177 100 10 150 1 200 0 250 2 300 0 1650
178 100 10 150 1 200 1 250 0 300 1 1650
179 100 10 150 3 200 1 250 0 300 0 1650
谢谢wxq1638仁兄的回复,您把所有的截取方式列举出来了。请教您这程序是怎样编写的?
再请教:每根铁丝长 1650 mm 截取下列品种、品种长度、需要数量后,不一定正好用完,可能会浪费一点,如:
品种 | 长度/mm | 需要数量/根 |
a1 | 303 | 10 |
a2 | 251 | 10 |
a3 | 202 | 10 |
a4 | 151 | 10 |
a5 | 107 | 10 |
在达到需要截取的品种、长度、数量的前提下,使用的铁丝根数最少,浪费的最小?
我一个品种一个品种的套,套出下列一种截取的方法:
a1 | 数量 | a2 | 数量 | a3 | 数量 | a4 | 数量 | a5 | 数量 | 长度合计 | 浪费合计 | |
第1根截取 | 303 | 4 | 202 | 2 | 1616 | 34 | ||||||
第2根截取 | 303 | 4 | 202 | 2 | 1616 | 34 | ||||||
第3根截取 | 303 | 2 | 251 | 3 | 151 | 1 | 107 | 1 | 1617 | 33 | ||
第4根截取 | 251 | 5 | 202 | 1 | 151 | 1 | 1608 | 42 | ||||
第5根截取 | 251 | 2 | 202 | 4 | 151 | 2 | 1612 | 38 | ||||
第6根截取 | 202 | 1 | 151 | 6 | 107 | 5 | 1643 | 7 | ||||
第7根截取 | 107 | 4 | 428 | |||||||||
需要数量合计 | a1 | 10 | a2 | 10 | a3 | 10 | a4 | 10 | a5 | 10 | 188 |
在实际工作中,有十几个品种,该如何编这计算程序? 谢谢!!!