Antecedentes (salte a las definiciones)
Euler demostró un hermoso teorema sobre los números complejos: e ix = cos (x) + i sin (x).
Esto hace que el teorema de de Moivre sea fácil de probar:
(e ix ) n = e i (nx)
(cos (x) + i sen (x)) n = cos (nx) + i sin (nx)
Podemos trazar números complejos usando el plano euclidiano bidimensional, donde el eje horizontal representa la parte real y el eje vertical representa la parte imaginaria. De esta manera, (3,4) correspondería al número complejo 3 + 4i.
Si está familiarizado con las coordenadas polares, (3,4) sería (5, arctan (4/3)) en coordenadas polares. El primer número, r, es la distancia del punto desde el origen; el segundo número, θ, es el ángulo medido desde el eje x positivo hasta el punto, en sentido antihorario. Como resultado, 3 = r cosθ y 4 = r sinθ. Por lo tanto, podemos escribir 3 + 4i como r cosθ + ri sinθ = r (cosθ + i sinθ) = re iθ .
Resolvamos la ecuación compleja z n = 1, donde n es un número entero positivo.
Dejamos z = re iθ . Entonces, z n = r n e inθ . La distancia de z n desde el origen es r n , y el ángulo es nθ. Sin embargo, sabemos que la distancia de 1 desde el origen es 1 y el ángulo es 0. Por lo tanto, r n = 1 y nθ = 0. Sin embargo, si giras 2π más, aún terminas en el mismo punto, porque 2π es solo un círculo completo. Por lo tanto, r = 1 y nθ = 2kπ, dándonos z = e 2ikπ / n .
Replanteamos nuestro descubrimiento: las soluciones para z n = 1 son z = e 2ikπ / n .
Un polinomio se puede expresar en términos de sus raíces. Por ejemplo, las raíces de x 2 -3x + 2 son 1 y 2, entonces x 2 -3x + 2 = (x-1) (x-2). Del mismo modo, de nuestro descubrimiento anterior:
Sin embargo, ese producto ciertamente contenía raíces de otros n. Por ejemplo, tome n = 8. Las raíces de z 4 = 1 también se incluirían dentro de las raíces de z 8 = 1, ya que z 4 = 1 implica z 8 = (z 4 ) 2 = 1 2 = 1. Tome n = 6 como ejemplo. Si z 2 = 1, entonces también tendríamos z 6 = 1. Del mismo modo, si z 3 = 1, entonces z 6 = 1.
Si queremos extraer las raíces exclusivas de z n = 1, necesitaríamos k y n para no compartir ningún divisor común excepto 1. O bien, si comparten un divisor común d donde d> 1, entonces z sería el (k / d) enésima raíz de z n / d = 1. Usando la técnica anterior para escribir el polinomio en términos de sus raíces, obtenemos el polinomio:
Tenga en cuenta que este polinomio se realiza eliminando las raíces de z n / d = 1 con d siendo un divisor de n. Afirmamos que el polinomio anterior tiene coeficientes enteros. Considere el MCM de los polinomios en forma de z n / d -1 donde d> 1 yd divide n. Las raíces del LCM son exactamente las raíces que deseamos eliminar. Como cada componente tiene coeficientes enteros, el LCM también tiene coeficientes enteros. Como el MCM divide z n -1, el cociente debe ser un polinomio con coeficiente entero, y el cociente es el polinomio anterior.
Las raíces de z n = 1 tienen radio 1, por lo que forman un círculo. El polinomio representa los puntos del círculo únicos de n, por lo que, en cierto sentido, los polinomios forman una partición del círculo. Por lo tanto, el polinomio anterior es el enésimo polinomio ciclotómico. (ciclo- = círculo; tom- = cortar)
Definición 1
El enésimo polinomio ciclotómico, denotado , es el polinomio único con coeficientes enteros que divide x n -1 pero no x k -1 para k <n.
Definición 2
Los polinomios ciclotómicos son un conjunto de polinomios, uno para cada entero positivo, de modo que:
donde k | n significa k divide n.
Definición 3
El polinomio ciclotómico n-ésimo es el polinomio x n -1 dividido por el LCM de los polinomios en la forma x k -1 donde k divide n y k <n.
Ejemplos
- Φ 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 - x8 - 2x 7 - x 6 - x 5 + x 2 + x + 1
Tarea
Dado un entero positivo n
, devuelve eln
polinomio ciclotómico -th como se definió anteriormente, en un formato razonable (es decir, se permite una lista de coeficientes).
Reglas
Puede devolver números flotantes / complejos siempre que se redondeen al valor correcto.
Puntuación
Esto es código golf . La respuesta más corta en bytes gana.