注册 登录
编程论坛 VB6论坛

已知目标函数M=3.6X+4.8Y+5.4Z-Q,Q为一定值,初始输入条件,约束条件:-0.2≤M≤0.2,且X、Y、Z均为大于等于0的整数,求解怎么编程,可以

zwt5201234 发布于 2017-08-19 11:14, 1854 次点击
如Q=27或30或32这样的数
5 回复
#2
风吹过b2017-08-19 20:43
简单写,就三层循环
for  x=0 to (Q+0.2)/3.6
  for y=....
     for z =  ...
m=....
if m>-0.2 and m<0.2 then
输出结果
end if
next z,y,x

手机上写的,自己补充完。
#3
xiangyue05102017-08-20 10:05
数学不是很好,似乎你这个方程可能有无数解。那样的话没法做
#4
ZHRXJR2017-08-20 12:47
一个函数三个变量,虽然函数值有范围,变量也有范围,你认为有可能是唯一解吗? 风吹过b 的回答我认为是可行的。
这个问题肯定是很多解,虽然很多,但不是无数解。

我测试了一下,在Q = 27 时,有 4 组解,在Q = 30 时,有 5 组解,在Q = 32 时,无解解。
如果XYZ的值大于0,不能等于0时,在Q = 27 时,有 1 组解,在Q = 30 时,有 2 组解,在Q = 32 时,无解解。
最多5组解,也不是很多解,你还认为是无数解吗?

[此贴子已经被作者于2017-8-21 09:43编辑过]

#5
chen35232017-08-20 13:43
似导弹打飞行物,Q飞行物高度,M爆炸距离,XYZ导弹飞行控制坐标
#6
xiangyue05102017-08-23 08:43
回复 5楼 chen3523
你没有明白楼上还有我的意思,代码是可以实现,但是如果是无数解。 程序会陷入死循环的。
这个代码上不是难题,主要还是数学模型要弄好,比如限制求解的最大数
1