【问题标题】:Can you get a list of the powers in a polynomial? Pari GP你能得到多项式中的幂的列表吗?帕里大奖赛
【发布时间】:2020-03-02 02:01:48
【问题描述】:
我正在使用系数为 +1/-1(和零)的单变量多项式。这些可能很长,权力的范围可能很大。我将权力视为一个向量会很方便 - 有什么方法可以快速做到这一点?我曾希望 Pari 已经有一个命令来执行此操作,但我似乎看不到?
只是一个例子来确认我正在尝试做什么......
输入:x^10 - x^8 + x^5 - x^2 + x + 1
所需输出:[10, 8, 5, 2, 1, 0]
【问题讨论】:
标签:
polynomials
pari
pari-gp
【解决方案1】:
您可以使用Vecrev 来获取多项式系数。之后,只需枚举它们以选择非零的从零开始的位置。您想要以下单行:
nonzeros(xs) = Vecrev([x[2]-1 | x <- select(x -> x[1] != 0, vector(#xs, i, [xs[i], i]))])
现在您可以轻松获得多项式幂的列表:
p = x^10 - x^8 + x^5 - x^2 + x + 1
nonzeros(Vecrev(p))
>> [10, 8, 5, 2, 1, 0]