1

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 上の表記多項式の形式は何ですか?

4

1 に答える 1

1

あなたの質問は少しわかりにくいです。私の理解が正しければ、問題は、[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]5⁴ 個の要素を持つ有限体上の多項式の NTL 表現をどのように解釈するかです。

最初に: 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);

少し誤解を招くです。次数が3未満のランダムな多項式に設定しrandom(f,3)ます。の係数を設定し、それ以降は次数が 3 の多項式です。fSetCoeff(f, 3)1

于 2016-04-11T21:12:50.360 に答える