我想创建一个给定系数的多项式。这看起来很简单,但到目前为止我发现的似乎并不是我想要的东西。 例如,在这样的环境中;
n = 11
K = GF(4,'a')
R = PolynomialRing(GF(4,'a'),"x")
x = R.gen()
a = K.gen()
v = [1,a,0,0,1,1,1,a,a,0,1]
给定长度为n的列表/向量v(我将在开头设置此n和v),我想将多项式v(x)
作为v[i]*x^i
。
(实际上,在我从上面获得这个GF(4,'a')[x] /< x^n-v(x) >
之后我将建立商圈v(x)
然后我会说;
S = R.quotient(x^n-v(x), 'y')
y = S.gen()
但是我写不出来。
答案 0 :(得分:1)
这是许多地方经常被问到的问题所以最好把它留在这里作为答案,尽管我的答案很简单:
我刚写了R(v)
,它给了我多项式:
sage
n = 11
K = GF(4,'a')
R = PolynomialRing(GF(4,'a'),"x")
x = R.gen()
a = K.gen()
v = [1,a,0,0,1,1,1,a,a,0,1]
R(v)
x^10 + a*x^8 + a*x^7 + x^6 + x^5 + x^4 + a*x + 1
答案 1 :(得分:0)
基本上(即忽略多项式环的细节),你有一个长度为n的列表/向量v,你需要一个多项式,它是所有v [i] * x ^ i的总和。注意,该和等于矩阵乘积V.X,其中V是一行矩阵(基本上等于矢量v),X是由x的幂组成的列矩阵。在 Maxima 中,您可以写
v:[1,a,0,0,1,1,1,a,a,0,1] $ n:长度(v)$ V:矩阵(v)$ X:genmatrix(lambda([i,j],x ^(i-1)),n,1)$ V.X;
输出
的x ^ 10 +一的x ^ 8 +一的x ^ 7 + X ^ 6 + X ^ 5 + X ^ 4 + A * X + 1