0
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. 나는 최대치를 현지화하는 데 어려움을 겪고 있습니다. if 문과 for 문 외부의 max는 for 문과 if 문 내부의 max와 다르므로 max를 업데이트하지 않습니다. 나는 마그마 CAS 구문에서 이것을 어떻게 수정할 수 있는지 잘 모르겠습니다. 누군가가이 측면과 관련하여 마그마 구문을 이해하도록 도와 줄 수 있습니까? 로컬 최대 값을 넣으려고했습니다. 루프 및 if 문 내부에서 구문 오류가 발생했습니다.마그마 컴퓨터 대수학 시스템 로컬 및 전역 변수

+0

또한 magma cas에 대한 태그가없는 이유는 무엇입니까? 마그마는 높은 수준의 프로그래밍 언어 (컴퓨터 대수학 시스템)/소프트웨어입니다. 제 의견으로는 태그 지정 옵션을 사용해야합니다. –

+0

누군가가 원할 수있는 모든 것에 대한 태그가 없습니다. 가장 인기있는 것들에 대한 태그가 있습니다. 이것은 최초의 마그마 질문 일 것입니다. 그것은 1400 달러의 비용이 드는 것으로 보인다. –

답변

1

나는 마그마를 모르지만, 다른 절차 적 컴퓨터 언어와 비슷하다면 코드에 간단한 버그가있는 것처럼 보입니다. 라인은 :

if max eq #gen then 
     max := #gen; 
    end if; 

정확한 구문은보다 큰 연산자이다 불문 사용

if #gen > max then 
     max := #gen; 
    end if; 

로 변경되어야한다.

+0

네, 제 교수님이 다음 날 가르쳐 줬는데 당신 말이 맞습니다! 내가 알게되었을 때 나는 아주 바보 같았다. 네, 왜 그것이> 지금인지 이해합니다. –