【问题标题】:SAGE: coefficients of Polynomial over finite fieldsSAGE:有限域上多项式的系数
【发布时间】:2014-02-19 09:23:06
【问题描述】:

我需要一些帮助来获得多项式的系数。 如果尝试过

y = var('y')
q = y^3 -2*y + 1
coeff_list = [q(y=0)] + [q.coeff(y^k) for k in range(1, q.degree(y)+1)]

但在 GF(q) 中

S.<y> = PolynomialRing(GF(q),'y')  
q = y^3 -2*y + 1
coeff_list = [q(y=0)] + [q.coeff(y^k) for k in range(1, q.degree(y)+1)]
coeff_list

我收到了这个错误

Error in lines 1-1
Traceback (most recent call last):
  File "/projects/31b0bdd7-734b-4864-bf87-0b7cfafd06e9/.sagemathcloud/sage_server.py", line 733, in execute
    exec compile(block+'\n', '', 'single') in namespace, locals
  File "", line 1, in <module>
  File "factory.pyx", line 141, in sage.structure.factory.UniqueFactory.__call__ (sage/structure/factory.c:1157)
  File "/usr/local/sage/sage-5.12/local/lib/python2.7/site-packages/sage/rings/finite_rings/constructor.py", line 352, in create_key_and_extra_args
    order = int(order)
  File "expression.pyx", line 889, in sage.symbolic.expression.Expression.__int__ (sage/symbolic/expression.cpp:6157)
ValueError: cannot convert y^3 - 2*y + 1 to int

有没有人想得到系数。提前非常感谢。 约翰杜

【问题讨论】:

  • S.&lt;y&gt; = PolynomialRing(GF(q),'y') 行中你真的希望q 成为y^3 -2*y + 1 吗? Is 甚至不是不可约多项式。

标签: polynomial-math sage


【解决方案1】:

首先,您的问题不是获取系数,而是构建环。我假设您想在GF(q) 上工作以获取素数q(比如7)。然后,当您在有限域 pol 上有多项式时,pol.list() 返回系数列表:

sage: q = 7
sage: S.<y> = PolynomialRing(GF(q),'y')
sage: pol = y^3 -2*y + 1  
sage: pol
y^3 + 5*y + 1
sage: pol.list()
[1, 5, 0, 1]

【讨论】:

猜你喜欢
  • 2015-09-06
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多