Un elemento primitivo di un campo finito è un generatore del gruppo moltiplicativo del campo. In altre parole, alpha
in F(q)
è chiamato elemento primitivo se è una q−1
radice primitiva dell'unità in F(q)
. Ciò significa che tutti gli elementi diversi da zero F(q)
possono essere scritti come alpha^i
per alcuni numeri interi (positivi) i
.
Tutti gli elementi del campo F_{2^k}
possono essere scritti al massimo come polinomi di grado k-1
con coefficienti che sono o 1
o 0
. Per renderlo completo, il codice deve anche generare un polinomio irriducibile di grado k
che definisce il campo che si sta utilizzando.
L'attività è scrivere codice che genera un elemento primitivo F_{2^k}
di tua scelta per ciascuno k = 1 .. 32
in ordine.
Il tuo output deve semplicemente elencare i k
coefficienti dell'elemento primitivo in qualsiasi formato che ti piace e quindi su una riga separata gli k+1
elementi del polinomio irriducibile. Si prega di separare le uscite per ogni valore di k
se possibile.
Il codice potrebbe richiedere tutto il tempo che desideri, ma devi averlo eseguito fino al completamento prima di inviare la risposta.
Non è possibile utilizzare alcuna funzione incorporata o libreria che restituisce elementi primitivi di un campo finito o verifica se un elemento è primitivo.
Un esempio
Perché k = 1
l'unico elemento primitivo è 1
.
Per k = 2
noi abbiamo F_4
. I 4 elementi sono {0, 1, x, x + 1}
quindi ci sono due elementi primitivi x
e x + 1
. Quindi il codice potrebbe essere emesso
1 1
1 1 1
come i coefficienti per esempio dove la seconda riga è il polinomio irriducibile che in questo caso è x^2+x+1
che ha coefficienti 1 1 1
.