Campi di Galois GF[(2^n)]: determinazione dei polinomi irriducibili

Riferimento: Matematica per l' Ingegneria dell' Informazione, Appendice 1-A

Clear["Global`"]

Generazione dei polinomi di grado k a coefficienti in GF[2], ad esclusione di quelli con termine noto nullo (divisibili per x):

poliGrado[k_]:=IntegerDigits[Range[2^k+1,2^(k+1),2],2,k+1].Reverse[Table[x^h,{h,0,k}]];

Esempio:

poliGrado[3]

Commento: chiamiamo la variabile D anziché x (secondo le consuetudini della teoria delle comunicazioni):

poliIrriducibili[n_] := 
Module[{prd,pgrk,h,k,i},
poliGrado[k_]:=IntegerDigits[Range[2^k+1,2^(k+1),2],2,k+1].Reverse[Table[D^h,{h,0,k}]];
prd = {{D+1}};
Do[pgrk = poliGrado[k];
Do[
Do[pgrk=Select[pgrk, (PolynomialMod[#,{prd[[i,h]],2}]=!= 0)&],   {h,1,Length[prd[[i]]]}
],
{i,1,Ceiling[k/2]}
];
AppendTo[prd, pgrk],
{k,2,n}];
Rest[prd]]

Esempio:

poliIrriducibili[4]

%//MatrixForm