我正在尝试在PARI/GP
. 我想以 3000 的步长创建一个值从 1000 到 41000 的向量。
因此,我想使用 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))
. 因此,在某些情况下,您可以将两个表达式与&
.
但是:如果运算符的第一个操作数为零(视为假),则运算符&
将短路。因此,您正在寻找的答案是分号;
。所以:
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
称为序列。