Фон (пропустите к определениям)
Эйлер доказал красивую теорему о комплексных числах: e ix = cos (x) + i sin (x).
Это позволяет легко доказать теорему де Мойвра:
(e ix ) n = e i (nx)
(cos (x) + i sin (x)) n = cos (nx) + i sin (nx)
Мы можем построить комплексные числа, используя двумерную евклидову плоскость, где горизонтальная ось представляет действительную часть, а вертикальная ось представляет мнимую часть. Таким образом, (3,4) будет соответствовать комплексному числу 3 + 4i.
Если вы знакомы с полярными координатами, (3,4) будет (5, arctan (4/3)) в полярных координатах. Первое число r - это расстояние точки от начала координат; второе число θ - это угол, измеренный от положительной оси x к точке против часовой стрелки. В результате 3 = r cosθ и 4 = r sinθ. Поэтому мы можем записать 3 + 4i как r cosθ + ri sinθ = r (cosθ + i sinθ) = re iθ .
Решим комплексное уравнение z n = 1, где n - натуральное число.
Пусть z = re iθ . Тогда z n = r n e inθ . Расстояние z n от начала координат равно r n , а угол равен nθ. Однако мы знаем, что расстояние 1 от начала координат равно 1, а угол равен 0. Следовательно, r n = 1 и nθ = 0. Однако, если вы повернете на 2π больше, вы все равно окажетесь в той же точке, потому что 2π - это просто полный круг. Следовательно, r = 1 и nθ = 2kπ, что дает нам z = e 2ikπ / n .
Мы повторяем наше открытие: решения для z n = 1 являются z = e 2ikπ / n .
Многочлен можно выразить через его корни. Например, корни x 2 -3x + 2 равны 1 и 2, поэтому x 2 -3x + 2 = (x-1) (x-2). Точно так же из нашего открытия выше:
Однако этот продукт, безусловно, содержал корни других русских. Например, возьмите n = 8. Корни z 4 = 1 также будут включены в корни z 8 = 1, поскольку z 4 = 1 подразумевает z 8 = (z 4 ) 2 = 1 2 = 1. Возьмем n = 6 в качестве примера. Если z 2 = 1, то мы также имели бы z 6 = 1. Аналогично, если z 3 = 1, то z 6 = 1.
Если мы хотим извлечь корни, уникальные для z n = 1, нам нужно, чтобы k и n не разделяли общий делитель, кроме 1. Или же, если они разделяют общий делитель d, где d> 1, то z будет (k / г) -ый корень из z n / d = 1. Используя вышеописанную технику, чтобы написать многочлен в терминах его корней, мы получим многочлен:
Обратите внимание, что этот многочлен выполняется путем удаления корней из z n / d = 1, где d является делителем n. Мы утверждаем, что полином выше имеет целочисленные коэффициенты. Рассмотрим LCM многочленов в виде z n / d -1, где d> 1 и d делит n. Корни LCM - это именно те корни, которые мы хотим удалить. Поскольку каждый компонент имеет целочисленные коэффициенты, LCM также имеет целочисленные коэффициенты. Поскольку LCM делит z n -1, частное должно быть многочленом с целочисленным коэффициентом, а частное является многочленом выше.
Корни z n = 1 имеют радиус 1, поэтому они образуют круг. Полином представляет точки окружности, уникальные для n, поэтому в некотором смысле полиномы образуют разбиение окружности. Следовательно, приведенный выше многочлен является n-м циклическим многочленом. (Цикло- = круг; том- = разрезать)
Определение 1
Обозначенный n-й циклотомический многочлен является единственным многочленом с целочисленными коэффициентами, которые делят x n -1, но не x k -1 при k <n.
Определение 2
Циклотомные полиномы - это набор полиномов, по одному на каждое положительное целое число, такой что:
где к | n означает, что k делит n.
Определение 3
N-й циклотомический полином - это полином x n -1, деленный на LCM полиномов в виде x k -1, где k делит n и k <n.
Примеры
- Φ 1 (x) = x - 1
- Ф 2 (х) = х + 1
- Ф 3 (х) = х 2 + х + 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 - х 8 - 2х 7 - х 6 - х 5 + х 2 + х + 1
задача
Если задано положительное целое число n
, верните-й n
циклотомический полином, как определено выше, в приемлемом формате (например, допустим список коэффициентов).
правила
Вы можете возвращать числа с плавающей запятой / комплексные числа, пока они округляются до правильного значения.
счет
Это код-гольф . Кратчайший ответ в байтах побеждает.