2016-04-07 29 views
1
NTLライブラリを使用して書かれたコードがあり

[1 2 3]3x² + 2x + 1平均である、例えば拡張多項式NTL

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

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; 
} 

出力されているが。
この場合、GFを超える表記多項式の形式は何ですか?

+0

の多項式であることの後にこれがないC –

答えて

0

ご質問が少し難解です。私があなたのことを正しく理解していれば、NTL表現[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]を多項式の有限体上で54要素で解釈する方法が問題です。

まず:(GF(5⁴)と呼ばれる)5⁴要素を有する有限体の要素は、fは程度の既約多項式である多項式GF(5)[X] mod 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. SetCoeff(f, 3)のランダムな多項式にrandom(f,3)セットf1の係数を設定し、それが度3

+0

はい、どのように解釈するように、C++でNTL表現:)ありがとう – magrif