Hintergrund (zu den Definitionen springen)
Euler hat einen schönen Satz über die komplexen Zahlen bewiesen: e ix = cos (x) + i sin (x).
Damit ist der Satz von de Moivre leicht zu beweisen:
(e ix ) n = e i (nx)
(cos (x) + i sin (x)) n = cos (nx) + i sin (nx)
Wir können komplexe Zahlen mit der zweidimensionalen euklidischen Ebene zeichnen, wobei die horizontale Achse den Realteil und die vertikale Achse den Imaginärteil darstellt. Auf diese Weise würde (3,4) der komplexen Zahl 3 + 4i entsprechen.
Wenn Sie mit Polarkoordinaten vertraut sind, wäre (3,4) (5, arctan (4/3)) in Polarkoordinaten. Die erste Zahl r ist der Abstand des Punktes vom Ursprung; die zweite Zahl θ ist der Winkel, der von der positiven x-Achse zum Punkt gegen den Uhrzeigersinn gemessen wird. Infolgedessen ist 3 = r cosθ und 4 = r sinθ. Daher können wir 3 + 4i schreiben als r cosθ + ri sinθ = r (cosθ + i sinθ) = re iθ .
Lösen wir die komplexe Gleichung z n = 1, wobei n eine positive ganze Zahl ist.
Wir lassen z = re iθ . Dann z n = R n e inθ . Der Abstand von Z n vom Ursprung r n , und n & theta; der Winkel ist. Wir wissen jedoch, dass der Abstand von 1 vom Ursprung 1 und der Winkel 0 ist. Daher ist r n = 1 und n & thgr; = 0. Wenn Sie sich jedoch um 2π mehr drehen, bleiben Sie am selben Punkt, da 2π nur ein voller Kreis ist. Daher ist r = 1 und n & thgr; = 2 k & pgr ;, was uns z = e 2ik & pgr; / n ergibt .
Wir wiederholen unsere Entdeckung: Die Lösungen für z n = 1 sind z = e 2ikπ / n .
Ein Polynom kann durch seine Wurzeln ausgedrückt werden. Zum Beispiel sind die Wurzeln von x 2 -3x + 2 1 und 2, also x 2 -3x + 2 = (x-1) (x-2). Ebenso aus unserer Entdeckung oben:
Dieses Produkt enthielt jedoch sicherlich Wurzeln anderer n. Nehmen Sie zum Beispiel n = 8. Die Wurzeln von z 4 = 1 würden auch innerhalb der Wurzeln von z 8 = 1 enthalten sein, da z 4 = 1 z 8 = (z 4 ) 2 = 1 2 = 1 impliziert . Nehmen Sie als Beispiel n = 6. Wenn z 2 = 1, dann hätten wir auch z 6 = 1. In ähnlicher Weise ist z 6 = 1 , wenn z 3 = 1 ist .
Wenn wir die für z n = 1 eindeutigen Wurzeln extrahieren wollen, brauchen wir k und n, um keinen gemeinsamen Teiler außer 1 zu teilen. Wenn sie sich einen gemeinsamen Teiler d teilen, wobei d> 1 ist, dann wäre z (k) / d) -te Wurzel von z n / d = 1. Unter Verwendung der obigen Technik, um das Polynom hinsichtlich seiner Wurzeln zu schreiben, erhalten wir das Polynom:
Beachten Sie, dass dieses Polynom durch Entfernen der Wurzeln von z n / d = 1 erstellt wird, wobei d ein Teiler von n ist. Wir behaupten, dass das obige Polynom ganzzahlige Koeffizienten hat. Betrachten Sie die LCM der Polynome in Form von z n / d -1, wobei d> 1 und d n dividieren. Die Wurzeln des LCM sind genau die Wurzeln, die wir entfernen möchten. Da jede Komponente ganzzahlige Koeffizienten hat, hat die LCM auch ganzzahlige Koeffizienten. Da die LCM z n -1 teilt , muss der Quotient ein Polynom mit ganzzahligem Koeffizienten sein, und der Quotient ist das obige Polynom.
Die Wurzeln von z n = 1 haben alle den Radius 1, bilden also einen Kreis. Das Polynom stellt die Punkte des Kreises dar, die für n eindeutig sind. In gewissem Sinne bilden die Polynome eine Teilung des Kreises. Daher ist das obige Polynom das n-te zyklotomische Polynom. (cyclo- = Kreis; tom- = schneiden)
Definition 1
Die n-te Kreisteilungspolynom, bezeichnet , ist die eindeutige Polynom mit ganzzahligen Koeffizienten , dass divide x n -1 aber nicht x k -1 für k <n.
Definition 2
Die zyklotomischen Polynome sind eine Menge von Polynomen, eine für jede positive ganze Zahl, so dass:
wo k | n bedeutet k dividiert n.
Definition 3
Das n-te zyklotomische Polynom ist das Polynom x n –1 geteilt durch die LCM der Polynome in der Form x k –1, wobei k n und k <n teilt.
Beispiele
- ≤ 1 (x) = x - 1
- ≤ 2 (x) = x + 1
- ≤ 3 (x) = x 2 + x + 1
- ≤ 30 (x) = x 8 + x 7 - x 5 - x 4 - x 3 + x + 1
- Φ 105 (x) = x 48 + x 47 + x 46 - x 43 - x 42 - 2x 41 - x 40 - x 39 + x 36 + x 35 + x 34 + x 33 + x 32 + x 31 - x 28 - x 26 - x 24 - x 22 - x 20 + x 17 + x 16 + x 15 + x 14 + x 13 + x 12 - x9 - x 8 - 2x 7 - x 6 - x 5 + x 2 + x + 1
Aufgabe
Bei einer positiven ganzen Zahl n
wird das n
-te zyklotomische Polynom wie oben definiert in einem vernünftigen Format zurückgegeben (z. B. eine Liste von Koeffizienten ist zulässig).
Regeln
Sie können Gleitkommazahlen / komplexe Zahlen zurückgeben, solange sie auf den richtigen Wert gerundet werden.
Wertung
Das ist Code-Golf . Kürzeste Antwort in Bytes gewinnt.