Un élément primitif d'un champ fini est un générateur du groupe multiplicatif du champ. En d'autres termes, alphain F(q)est appelé élément primitif s'il est une q−1racine primitive de l'unité dans F(q). Cela signifie que tous les éléments non nuls de F(q)peuvent être écrits comme alpha^ipour un entier (positif) i.
Tous les éléments du champ F_{2^k}peuvent être écrits sous forme de polynômes de degré au plus k-1avec des coefficients qui sont soit 1ou 0. Pour que cela soit complet, votre code doit également générer un polynôme irréductible de degré kqui définit le champ que vous utilisez.
La tâche consiste à écrire du code qui génère un élément primitif F_{2^k}de votre choix pour chacun k = 1 .. 32dans l'ordre.
Votre sortie doit simplement lister les kcoefficients de l'élément primitif dans n'importe quel format que vous aimez, puis sur une ligne séparée les k+1éléments du polynôme irréductible. Veuillez séparer les sorties pour chaque valeur de ksi possible.
Votre code peut prendre autant de temps que vous le souhaitez, mais vous devez l'avoir exécuté jusqu'à la fin avant de soumettre votre réponse.
Vous ne pouvez pas utiliser de fonction intégrée ou de bibliothèque qui renvoie des éléments primitifs d'un champ fini ou teste si un élément est primitif.
Un exemple
Car k = 1le seul élément primitif est 1.
Car k = 2nous l'avons F_4. Les 4 éléments sont {0, 1, x, x + 1}donc il y a deux éléments primitifs xet x + 1. Ainsi, le code pourrait sortir
1 1
1 1 1
comme les coefficients par exemple où la deuxième ligne est le polynôme irréductible qui dans ce cas est celui x^2+x+1qui a des coefficients 1 1 1.