问题标签 [pari-gp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
list - 如何对 pari/gp 中的混合整数/分数列表进行排序
目前,我正在实现一种算法,通过使用 FareySeries(n) 调用我的函数来返回 n 阶的 Farey Series。这很好用,例如调用
L = FareySeries(4)
返回
List([0, 1, 1/2, 1/3, 1/4, 2/3, 3/4])
,但我需要对列表进行排序。阅读文档,我想
会做这项工作,但似乎这只适用于整数和浮点数(我手动测试过)。是否有一些内置函数(或参数)用于对包含混合整数和分数的列表进行排序,还是我必须手动对其进行排序?我不需要代码给自己排序,我只想使用,已经实现的;在这里坚持编码的基础知识。
polynomials - 在 Pari/GP 中将多项式的因子作为向量返回
使用 时factor
,Pari 打印多项式的因子及其多重性。然而,当使用 时,polcyclofactors
多项式的分圆因子被列为向量,没有多重性。
polcyclofactors
仅简单地分解多项式时,有没有办法模仿?那么,只是将多项式的因子显示为向量,而不用担心多重性?
polynomials - 你能得到多项式中的幂的列表吗?帕里大奖赛
我正在使用系数为 +1/-1(和零)的单变量多项式。这些可能很长,权力范围可能很大。我将权力视为一个向量会很方便 - 有什么方法可以快速做到这一点?我曾希望帕里已经有一个命令来执行此操作,但我似乎看不到一个?
只是一个例子来确认我正在尝试做什么......
输入:x^10 - x^8 + x^5 - x^2 + x + 1
期望的输出:[10, 8, 5, 2, 1, 0]
prime-factoring - 在函数 FACTOR 的 PARI/GP 中,-1 是错误还是意味着其他?
首先运行函数 b(n):
在函数 c(n) 之后:
上次运行 d(n):
并用 202 测试
结果是:
什么表明-1
因式分解结果?
pari - PARI/GP 中的位数
有没有一种方法可以获得最高有效位的位置,即floor(log(x)/log(2)) + 1
?
目前我正在运行以下可憎的事情:
这是必要的,因为我正在处理更大的数字,并且floor(log(2^(2^31) - 1)/log(2)) + 1
打印正确结果2147483647
而不是错误结果所需的精度2147483648
非常大。
PARI/GP 中真的没有内置函数来获取 MSB 的位置吗?
polynomials - 多项式向量,每个定义为一个函数
我正在尝试获取多项式向量,但在向量中每个多项式都由 Pari 中的函数定义。
例如,我希望能够输出这种形式的向量:
[f(x) = x-1 , f(x) = x^2 - 1, f(x) = x^3 - 1, f(x) = x^4 - 1, f(x) = x^5 - 1]
一个简单的向量构造vector( 5, n, f(x) = x^n-1)
不起作用,输出[(x)->my(i=1);x^i-1, (x)->my(i=2);x^i-1, (x)->my(i=3);x^i-1, (x)->my(i=4);x^i-1, (x)->my(i=5);x^i-1]
.
有没有办法非常巧妙地做到这一点?
更新:
我有一个函数,它在两个变量(比如 x 和 y)中采用多项式,用 exp(I*t) 替换其中一个变量(比如 y),然后在 t=0 和 t=1 之间积分,给出一个x 中的单变量多项式: int(T)=intnum(t=0,1,T(x,exp(I*t)))
由于这是定义的方式,我必须明确定义多项式T(x,y)=...
,然后计算int(T)
。简单地放入多项式,比如int(x*y)-1
,返回:
*** at top-level: int(x*y-1)
*** ^----------
*** in function int: intnum(t=0,1,T(x,exp(I*t)))
*** ^--------------
*** not a function in function call
*** Break loop: type 'break' to go back to GP prompt
我希望能够为许多多项式执行此操作,而不必T(x,y)=...
为每个多项式手动键入。我的计划是尝试使用该apply
功能来做到这一点(因此,将所有多项式放在一个向量中 - 举个简单的例子,vector(5, n, x^n*y-1)
)。但是,由于我定义的方式int
,我需要将向量中的每个条目定义为T(x,y)=...
,这是我最初的问题产生的地方。
定义T(x,y)=vector(5, n, x^n*y-1)
似乎对我想要计算的内容没有帮助。而且由于如何int
定义,我想不出任何其他方法来尝试解决这个问题。
有任何想法吗?
pari - 从 pari/gp 调用外部函数
是否可以从 pari/gp 调用 primesieve(Kim Walisch 工具)并将值传递到 pari/gp 中的变量中?我想用这个替换 primePi () 函数(作为外部函数,可能使用 system("f") 命令),因为 premisieve 找到素数的速度要快得多。
array-formulas - 如何使用 PARI/GP 计算幂级数的倒数?
我想用 PARI/GP 反转幂级数:
如果$y=a[1]*x+a[2]*x^2+...+O(x^N)$
由给定数组编码,例如a=vector(N-1)
,我希望 PARI 产生向量 b 使得$x=b[1]*y+b[2]*y^2+...+O(y^N)$
.
这可以使用贝尔多项式来完成。帕里手册有
生产例如
但我不知道如何使用这些,即在 Pari 的后续公式中将值归因X1, X2, ...
于(事实上,我几乎不明白上述公式是如何工作的!)eval()
。subst()
对于知道的人来说这应该是微不足道的......请帮助!
vector - 在循环中从向量中删除项目 - PARI/GP
我正在查看向量 [a,b,c],对于 [-1,0,1] 中的 a,b,c 以及一个函数循环,它将向量的每个条目向左移动一个:cycle( v ) = [v[3], v[1], v[2]]
。
我只想考虑没有两个向量是“循环等效”的向量;即:如果我看向量 x,y,我不想要y = cycle( x )
.
我尝试的是设置一个包含所有 27 个可能向量的向量 V,然后定义以下内容:
这允许我指定一个特定的向量,应用函数,然后返回一个带有结果的新向量,如果有,则删除。当然,问题是我必须用新的向量重复这个,一次又一次地重复,让自己面临人为错误。
我怎样才能自动化呢?我想可以将它设置为让我的向量向量 V、测试cycle( V[1] )
、丢弃结果、返回一个新向量 W、然后测试cycle( W[2] )
等等,直到所有可能性都得到测试。但我只是不确定如何设置它!
编辑:MNWE,为方便起见,将数字更改为上面。
在我的情况下,我会cycle( [1, 1, 2] ) = [2, 1, 1]
,所以我也想[2, 1, 1]
删除,但这并没有发生。如前所述,我想比较器需要改进,但我不确定如何改进!
pari-gp - 如果我使用多行嵌套 for 循环,如何移动到 PARI/GP 中的下一个循环?
我的问题是:如果我使用多行嵌套 for 循环,如何移动到 PARI/GP 中的下一个循环?例如 :
如果我使用此代码:
for(K=1,10,for(i=1,5,if(isprime(2*i*prime(K)+1)==1,print(2*i"*"prime(K)))) )
并且由于 2*(i=1)*prime(K=1)+1=5 是素数,我需要我的机器不要循环 i=2......i=5,我需要它继续到下一个 K,所以:
如何在 PARI/GP 上做到这一点?
如果我的问题不清楚或重复,我很抱歉。