Ein primitives Element eines endlichen Feldes ist ein Generator der multiplikativen Gruppe des Feldes. Mit anderen Worten, alpha
in F(q)
wird ein primitives Element genannt, wenn es eine primitive q−1
Wurzel der Einheit in ist F(q)
. Dies bedeutet, dass alle Nicht-Null-Elemente von F(q)
wie alpha^i
für eine (positive) Ganzzahl geschrieben werden können i
.
Alle Elemente des Feldes F_{2^k}
können als Polynome von höchstens Grad k-1
mit Koeffizienten geschrieben werden, die entweder 1
oder sind 0
. Um dies vollständig zu machen, Ihr Code muss auch ein zur Ausgabe irreduzibles Polynom vom Grad , k
die das Feld definieren Sie verwenden.
Die Aufgabe besteht darin, Code zu schreiben, der in der angegebenen Reihenfolge ein primitives Element F_{2^k}
Ihrer Wahl ausgibt k = 1 .. 32
.
Ihre Ausgabe muss einfach die k
Koeffizienten des primitiven Elements in einem beliebigen Format auflisten und dann in einer separaten Zeile die k+1
Elemente des irreduziblen Polynoms. Bitte trennen Sie die Ausgänge nach k
Möglichkeit für jeden Wert von .
Ihr Code kann so lange dauern, wie Sie möchten, aber Sie müssen ihn vollständig ausgeführt haben, bevor Sie Ihre Antwort senden können.
Sie dürfen keine eingebaute oder Bibliotheksfunktion verwenden, die primitive Elemente eines endlichen Feldes zurückgibt oder testet, ob ein Element primitiv ist.
Ein Beispiel
Denn k = 1
das einzige primitive Element ist 1
.
Denn k = 2
wir haben F_4
. Die 4 Elemente sind {0, 1, x, x + 1}
also zwei primitive Elemente x
und x + 1
. So könnte der Code ausgeben
1 1
1 1 1
B. die Koeffizienten, bei denen die zweite Linie das irreduzible Polynom ist, das in diesem Fall x^2+x+1
die Koeffizienten aufweist 1 1 1
.
Antworten:
Pari / GP , 114 Bytes
Inspiriert von Isaacs Antwort in einer anderen Frage.
Probieren Sie es online!
Wenn Einbauten erlaubt sind:
Pari / GP , 61 Bytes (nicht konkurrierend)
Probieren Sie es online!
quelle
Mathematica, 127 Bytes
Erläuterung:
Ausgabe:
quelle