Maple - 如何使4个变量的循环适合于数组

时间:2012-11-17 15:37:12

标签: arrays list for-loop maple

说我有两个清单:     M =(0,1,2,3)和N =(0,2,4,6)

And I wish to put into a list all the combinations of Mi,Mj,Ns,Nt (where i,j,s,t are       subscripts so for i=1 M=0, i=2 M=1 etc.) such that:

C = a^(Mi+Mj) + b^(Ns+Nj)

First in the list would be
C = a^(0+0) + b^(0+0)
C = a^(1+0) + b^(0+0)
C = a^(1+0) + b^(2+0)

有没有一种更简洁的方法来写出来,而不是使用'for'子句4次?

for i from 1 to 4 do
for j from 1 to 4 do
for s from 1 to 4 do
for t from 1 to 4 do

C = a^(Mi+Mj) + b^(Ns+Nj)

end do;
end do;
end do;
end do;

我将它放入一个数组,但我想限制递归,因为枫不喜欢它!是否可以将其放入带有4个变量的2x2数组中?

我考虑制作Mi + Mj的所有组合的2个列表以及Ns + Nt的所有组合然后将它们放在一个数组中,但它出现的类似于我想要的,但不是很正确。

1 个答案:

答案 0 :(得分:0)

我不使用Maple,但经过快速谷歌搜索后,事实证明Maple至少支持嵌套循环。所以....


首先,迭代M的所有组合,计算^(Mi + Mj),并将结果存储在A中。

for i from 1 to 4 do
for j from 1 to 4 do
    A = a^(Mi+Mj)
end do;
end do;

其次,对N执行相同操作,并将结果存储在B中。

第三,得到C。

for i from 1 to 16 do
for j from 1 to 16 do
    C = Ai + Bj
end do;
end do;

实际上,原始方法需要大量冗余计算,上述方法消除了冗余。因此,我想它不仅可行而且速度更快。