我有
int a ;
int b ;
int c ;
range m= 1..a;
range n= 1..b;
range o= 1..c;
int s[m]=[11,1,1,1,1,1,1,1,1,1];
int q[m][o]=[[4,5,0,2],[3,2,1,0],[0,1,4,5],[3,2,0,1],[2,1,3,2],[4,3,2,1],[3,4,2,0],[5,0,3,1],[0,4,3,3],[4,0,4,1]];
a=length(s);
b= sum(i in m) s[i];
c=length(q[m]);
int d[o]
forall(k in o)
int d[k]= sum(i in m) (s[i]*q[i][k]);
a,b,c,d的语句不正确。我不想直接对a b c d进行初始化,我需要将a
存储为s[m]的长度,也就是10,b
存储为s[m]的和,也就是20,c
存储为q[m][o]的一个d元素的长度,也就是4,d[k]
存储为每个k的s和q的和,分别是68 72 22 36。如果你能帮忙,我将不胜感激。
int a=10 ;
int c=4 ;
range m= 1..a;
range o= 1..c;
int s[m]=[11,1,1,1,1,1,1,1,1,1];
int q[m][o]=[[4,5,0,2],[3,2,1,0],[0,1,4,5],[3,2,0,1],[2,1,3,2],[4,3,2,1],[3,4,2,0],[5,0,3,1],[0,4,3,3],[4,0,4,1]];
//a=length(s);
int b= sum(i in m) s[i];
//c=length(q[m]);
int d[k in o]=sum(i in m) (s[i]*q[i][k]);
execute
{
writeln("d=",d);
}
工作良好,并给出
d= [68 72 22 36]