function Max(x)
max := 0; L := [];
for i := 1 to x do
P2<x,y,z> := ProjectiveSpace(Rationals(),2);
C_i := Curve(P2, x^3+y^3-i*z^3);
E_i, C_itoE_i := EllipticCurve(C_i);
gen := Generators(E_i);
if max eq #gen then
max := #gen;
end if;
end for;
return max;
end function;
当我运行这个 (Max(100)) 时,它告诉我 max = 0。但是我知道在不同的地方有 #gen = 1 和 2,因此 #gen > 0。我很难定位 max。它认为 if 和 for 语句之外的 max 与 for 和 if 语句中的 max 不同,因此不会更新 max。我不确定如何在岩浆 CAS 语法中对此进行纠正。有人可以帮我理解这方面的 Magma 语法吗?我试着把本地最大值;在循环和 if 语句中,但给了我语法错误。