【问题标题】:Extended polynomials in library NTL库 NTL 中的扩展多项式
【发布时间】:2016-04-07 12:09:22
【问题描述】:

有代码是用NTL库写的:

int main()
{
      ZZ_p::init(ZZ(5)); // define GF(5)

      ZZ_pX P;
      BuildIrred(P, 4); // generate an irreducible polynomial P
                         // of degree 4 over GF(5)

      ZZ_pE::init(P); // define GF(5^4)

      ZZ_pEX f, g, h;  // declare polynomials over GF(5^4)

      random(f, 3);  // f is a random, monic polynomial of degree 3
      SetCoeff(f, 3);
      cout << f << endl<< endl;
}

输出是:

[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]

例如,[1 2 3] 的意思是 3x² + 2x + 1
在这种情况下,GF 上的符号多项式的形式是什么?

【问题讨论】:

  • 这是 C++,不是 C

标签: c++ gmp number-theory ntl


【解决方案1】:

您的问题有点难以理解。如果我理解正确,那么问题是如何解释具有 5⁴ 个元素的有限域上多项式的 NTL 表示 [[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]

首先:具有 5⁴ 个元素的有限域中的元素(称为GF(5⁴))表示为多项式GF(5)[X] mod f,其中f 是 4 次不可约多项式。

这意味着GF(5⁴) 上的多项式是一个多项式,其中系数是GF(5)[X] mod f 中的多项式。

所以[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]可以解释为

Y³ + (X³ + 3X² + 1)⋅Y² + (2X³ + 3X² + X + 2)⋅Y + (4X³ + X² + X + 3)

注意:

中的注释
random(f, 3);  // f is a random, monic polynomial of degree 3
SetCoeff(f, 3);

有点误导。 random(f,3)f 设置为 小于 3 次的随机多项式。SetCoeff(f, 3) 的系数设置为 1,然后它是 3 次多项式。

【讨论】:

  • 是的,如何解释 NTL 表示 :) 谢谢
猜你喜欢
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-29
  • 2011-02-09
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
相关资源
最近更新 更多