Segundo plano (pule para definições)
Euler provou um belo teorema sobre os números complexos: e ix = cos (x) + i sin (x).
Isso facilita a prova do teorema de De Moivre:
(e ix ) n = e i (nx)
(cos (x) + i sen (x)) n = cos (nx) + i sen (nx)
Podemos plotar números complexos usando o plano euclidiano bidimensional, com o eixo horizontal representando a parte real e o eixo vertical representando a parte imaginária. Dessa forma, (3,4) corresponderia ao número complexo 3 + 4i.
Se você estiver familiarizado com as coordenadas polares, (3,4) seria (5, arctan (4/3)) nas coordenadas polares. O primeiro número, r, é a distância do ponto da origem; o segundo número, θ, é o ângulo medido do eixo x positivo ao ponto no sentido anti-horário. Como resultado, 3 = r cosθ e 4 = r sinθ. Portanto, podemos escrever 3 + 4i como r cosθ + ri sinθ = r (cosθ + i sinθ) = re iθ .
Vamos resolver a equação complexa z n = 1, onde n é um número inteiro positivo.
Deixamos z = re iθ . Então, z n = r n e inθ . A distância de z n da origem é r n , e o ângulo é nθ. No entanto, sabemos que a distância de 1 da origem é 1 e o ângulo é 0. Portanto, r n = 1 e nθ = 0. No entanto, se você girar mais 2π, ainda terminará no mesmo ponto, porque 2π é apenas um círculo completo. Portanto, r = 1 e nθ = 2kπ, dando-nos z = e 2ikπ / n .
Reafirmamos nossa descoberta: as soluções para z n = 1 são z = e 2ikπ / n .
Um polinômio pode ser expresso em termos de suas raízes. Por exemplo, as raízes de x 2 -3x + 2 são 1 e 2, então x 2 -3x + 2 = (x-1) (x-2). Da mesma forma, de nossa descoberta acima:
No entanto, esse produto certamente continha raízes de outros n. Por exemplo, considere n = 8. As raízes de z 4 = 1 também seriam incluídas nas raízes de z 8 = 1, uma vez que z 4 = 1 implica z 8 = (z 4 ) 2 = 1 2 = 1. Tome n = 6 como exemplo. Se z 2 = 1, também teríamos z 6 = 1. Da mesma forma, se z 3 = 1, então z 6 = 1.
Se quisermos extrair as raízes exclusivas de z n = 1, precisaríamos de k e n para não compartilhar nenhum divisor comum, exceto 1. Caso contrário, se eles compartilharem um divisor comum d, em que d> 1, z seria o (k / d) -ésima raiz de z n / d = 1. Usando a técnica acima para escrever o polinômio em termos de suas raízes, obtemos o polinômio:
Observe que esse polinômio é feito removendo as raízes de z n / d = 1, com d sendo um divisor de n. Afirmamos que o polinômio acima tem coeficientes inteiros. Considere o LCM dos polinômios na forma de z n / d -1, em que d> 1 ed divide n. As raízes do LCM são exatamente as que queremos remover. Como cada componente possui coeficientes inteiros, o LCM também possui coeficientes inteiros. Como o LCM divide z n -1, o quociente deve ser um polinômio com coeficiente inteiro, e o quociente é o polinômio acima.
As raízes de z n = 1 têm raio 1 e formam um círculo. O polinômio representa os pontos do círculo exclusivos de n; portanto, em certo sentido, os polinômios formam uma partição do círculo. Portanto, o polinômio acima é o n-ésimo polinômio ciclotômico. (ciclo- = círculo; tom- = cortar)
Definição 1
O n-ésimo polinômio ciclotômico, denotado , é o polinômio único com coeficientes inteiros que dividem x n -1, mas não x k -1 para k <n.
Definição 2
Os polinômios ciclotômicos são um conjunto de polinômios, um para cada número inteiro positivo, de modo que:
onde k | n significa k divide n.
Definição 3
O n-ésimo polinômio ciclotômico é o polinômio x n -1 dividido pelo LCM dos polinômios na forma x k -1 em que k divide n e k <n.
Exemplos
- Φ 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
Tarefa
Dado um número inteiro positivo n
, retorne o n
-ésimo polinômio ciclotômico conforme definido acima, em um formato razoável (por exemplo, é permitida uma lista de coeficientes).
Regras
Você pode retornar números flutuantes / complexos, contanto que arredondem para o valor correto.
Pontuação
Isso é código-golfe . A resposta mais curta em bytes vence.