我无法在以下代码中找到枫的错误。 一直在寻找它:
L:=[seq(i*0,i=0..12)];
rond:=false;
x:=1;
while(rond=false) do
if(L[x]=1) then rond:=true;
else L[x]:=1; x:=(2*x+11)mod 13;
end if;
end do;
它给出了一个未终止的循环错误。为什么呢?
答案 0 :(得分:1)
我收到“无效的下标”错误。在一次通过循环后,x变为0(2 * 1 + 11 mod 13 = 0)。零不是列表L的有效索引。列表索引从1开始。
顺便说一句,你应该使用Vector或Array代替L而不是列表。对列表条目进行分配效率很低,当列表很长时,Maple根本不会允许它。
你可以使L成为索引为0到12的数组。只需
L:= Array(0..12);
它会自动初始化为0。