Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在PARI/GP中的forstep语句中使用多个序列?_Loops_Pari Gp - Fatal编程技术网

Loops 如何在PARI/GP中的forstep语句中使用多个序列?

Loops 如何在PARI/GP中的forstep语句中使用多个序列?,loops,pari-gp,Loops,Pari Gp,我正试图在PARI/GP中编写一些东西。 我想创建一个向量,它的值从1000到41000,以3000步为单位 因此,我想使用forstep语句。 如果使用1个序列,则此操作很好 例如: forstep(x=1000,41000,3000,print(x)) 但是,我想做一些类似的事情: forstep(x=1000,41000,3000,x[i]=x & i=i+1) 如何做到这一点?让您的方法发挥作用的一种方法是: v=vector(14); i=1; forstep(x=1000

我正试图在
PARI/GP
中编写一些东西。 我想创建一个向量,它的值从1000到41000,以3000步为单位

因此,我想使用forstep语句。 如果使用1个序列,则此操作很好

例如:

forstep(x=1000,41000,3000,print(x))
但是,我想做一些类似的事情:

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

如何做到这一点?

让您的方法发挥作用的一种方法是:

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))
。因此,在某些情况下,您可以将两个表达式与
&
组合在一起

但是:如果运算符的第一个操作数为零(视为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术语中称为序列。

为什么不使用
start=1000;结束=41000;阶跃=3000;向量((结束-开始)/步骤,i,i)
?@PiotrSemenov由于几个输入错误,它将无法工作。这似乎还可以:
start=1000;结束=41000;阶跃=3000;向量((结束-开始)\step+1,i,start+(i-1)*step)
如果您知道递增的语法,PARI/GP也有:
v=vector(14);i=0;步骤(x=1000410003000,v[i++]=x);v