lingo怎么写循环
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/04 12:16:49
那你解释一下你这个@if的条件是什么否则不好写啊你写的恐怕是有问题的再问:就是希望如果距离小于10权重为0.5,距离大于10权重为0.3,然后根据权重计算权重a乘以d再答:什么距离具体是哪个距离你这个
说清楚你要具体做什么再问:对于下列数据进行分组,每组5个数,要求总长度为90,所分组中先将短的取完,其次较短的,以此类推,用lingo解决长度1415161718192021根数35292142356
lingo的模型部分是描述性的语言不是操作性的这个你要清楚用循环语句要先定义集具体的请自己去看教程这里不可能说的很详细比如set:setname/1..10/:t;endsetsa=@sum(setn
以其用函数,还不如直接写.min和约束条件直接写上去就可以了
用三个for语句就可以实现了.可以写成这样的形式.STRAIN表示约束条件.@for(set1:@for(set2:@for(set3:STRAIN)));
例如?如果x>2则y=3否则y=1.看如下表示y=@if(x#gt#2,3,1);@if(条件判断,真,假);
集合长度多大没有写明,我随便写了,你自己再改一下sets:l/1..18/:;r/1..5/:;c/1..5/:;link(l,r,c):x;endsets@for(l(i):@sum(c(k):@p
最好把模型全部写出来,否则不好写.问题有:1,集合I,K表示什么?有多少个成员?2,第三个约束中的j有范围吗?
你换个技能和研究一体机
不能这样写,两边都是变量,用lingo不能约束
你没有给出i的范围,我这边设i=1..5sets:r/1..5/:;c/1..20/:;link(r,c):x;endsets@for(link(i,j)|i#eq#j:x(i,j)=1);@for(
@表示调用函数,@for表示调用for函数,不像其他语言只要输入for就行了,
你的集定义写出来否则没法写再问:你好,lingo的数据段是否可以使用函数@sum?再答:不可以
没有说明,写什么函数
@gin(x)
sets:r/1..8/:d;c/1..8/:;link(r,c):x,y;endsets@for(r(i):@for(c(j):x(i,j)
你的X数据是13个,多了
不能直接用逻辑表达式的值必须把它赋给一个变量用变量表达至于赋值可以用@if来做具体的我没看懂你要表达的意思所以不知道怎么改
@for(s(i):c(i)=@sum(si(j)|j#le#i:a(j)+b(j)));
a=@smax(a,0);!@smax()函数用于求若干变量或表达式的最大值,此处将a和0的最大值赋给a即表示当a<0是a=0;@free(a);!lingo默认变量非负,@free(a)限定a为任意