1

我正在尝试在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)

这个怎么做?

4

1 回答 1

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

但是:如果运算符的第一个操作数为零(视为假),则运算符&将短路。因此,您正在寻找的答案是分号;。所以:

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称为序列。

于 2015-08-03T05:57:23.240 回答