2016-04-07 21 views
1

Es Code ist geschrieben mit NTL Bibliothek:Erweiterte Polynome in der Bibliothek 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; 
} 

Die Ausgabe lautet:

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

Zum Beispiel [1 2 3] Mittelwert 3x² + 2x + 1.
Was ist die Form der Notation Polynom über GF in diesem Fall?

+0

Dies ist C++, nicht –

Antwort

0

Ihre Frage ist ein bisschen schwierig zu verstehen. Wenn ich Sie richtig verstehe, ist die Frage, wie man die NTL-Darstellung [[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]] eines Polynoms über das endliche Feld mit 5⁴ Elementen interpretiert.

Erstens: Die Elemente in dem endlichen Feld mit 5⁴ Elementen (genannt GF(5⁴)) als die Polynome dargestellt GF(5)[X] mod f, wo f ein irreduzibles Polynom vom Grad 4.

Das bedeutet, ein Polynom über GF(5⁴) ein Polynom in dem Die Koeffizienten sind Polynome in GF(5)[X] mod f.

So [[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]] als

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

Hinweis interpretiert werden: Der Kommentar in

random(f, 3); // f is a random, monic polynomial of degree 3 
SetCoeff(f, 3); 

ist ein wenig irreführend. random(f,3) Sätze f zu einem zufälligen Polynom vom Grad weniger als 3. SetCoeff(f, 3) setzen den Koeffizienten des zu 1 und nach, dass es ein Polynom vom Grad 3 ist

+0

C ja, wie das interpretieren NTL Darstellung :) Danke – magrif