2014-12-22 2 views
1

PARI/GP에 뭔가를 쓰려고합니다. 3000에서 3000까지의 값으로 1000에서 41000까지의 벡터를 만들고 싶습니다.PARI/GP의 forstep 문에서 둘 이상의 시퀀스를 사용하는 방법은 무엇입니까?

따라서 forstep 문을 사용하고 싶습니다. 1 시퀀스를 사용하면 정상적으로 작동합니다.

예 :

forstep(x=1000,41000,3000,x[i]=x & i=i+1) 

방법이 작업을 수행하는 :

forstep(x=1000,41000,3000,print(x)) 

는 그러나, 나는 그런 짓을하고 싶어? 당신의 접근 방식의 작품을 만드는

+1

단지'start = 1000; end = 41000; 단계 = 3000; 벡터 ((end-start)/step, i, i)'? –

+0

@PiotrSemenov 몇 가지 오타 때문에 작동하지 않습니다. 이것은 정상적으로 보인다 :'start = 1000; end = 41000; 단계 = 3000; –

답변

0

한 가지 방법은 다음과 같습니다

v=vector(14); i=1; forstep(x=1000,41000,3000,(v[i]=x) & (i=i+1)); v 

내가 각각 할당 주위에 괄호를 넣어. 그렇지 않으면 PARI/GP는 v[i]=(x & (i=i+1))으로 간주합니다. 그래서 어떤 경우에는 두 표현식을 &과 결합 할 수 있습니다.

그러나 : 연산자 &은 첫 번째 피연산자가 0 인 경우 (false로 표시됨) 단락됩니다. 그래서 당신이 찾고있는 대답은 세미콜론 ;입니다. 그래서 :

v=vector(14); i=1; forstep(x=1000,41000,3000,v[i]=x; i=i+1); v 

나는 v[i]=x; i=i+1 같은 세미콜론과 구조가 PARI/GP 용어에 순서라고 생각합니다.

+0

그리고 '++'문법이 증가하는 것을 안다면, PARI/GP도 다음과 같이됩니다 :'v = vector (벡터의 시작과 끝) (x = 1000410003000, v [i ++] = x); v' (14); i = 0; forstep –

관련 문제