其实我想最优方案就是限定条件的问题,对于这类方案,最好想的方法就是将所有可能列出,然后去掉不合适的,我的程序如下,你可以试一试,其实就是嵌套循环.但我不明白最优方案的限定,这可能是在实际中的问题?比如,那种方案最节约材料?我可以将程序中加上几个限定条件
Sub qiujie()
'求解
Dim m, a1, a2, a3, a4, i, j, k, l, w As Integer
m = 2000'总
a1 = 201: a2 = 301: a3 = 401: a4 = 501'切分大小45种方案
w = 0
For i = 1 To 4
Sheet1.Cells(1, i + 1) = "条件" + CStr(i)
Next
For i = 0 To Int(m / a1)'嵌套循环
For j = 0 To Int(m / a2)
For k = 0 To Int(m / a3)
For l = 0 To Int(m / a4)
If (m - (a1 * i + a2 * j + a3 * k + a4 * l)) > 0 And (m - (a1 * i + a2 * j + a3 * k + a4 * l)) < a1 Then'是否满足条件
w = w + 1
Sheet1.Cells(w + 1, 1) = "方案" + CStr(w)
Sheet1.Cells(w + 1, 2) = i
Sheet1.Cells(w + 1, 3) = j
Sheet1.Cells(w + 1, 4) = k
Sheet1.Cells(w + 1, 5) = l
End If
Next l
Next k
Next j
Next i
End Sub
[此贴子已经被作者于2003-10-14 10:00:37编辑过] |