Опубликован: 04.03.2008 | Доступ: свободный | Студентов: 1626 / 46 | Оценка: 4.56 / 3.67 | Длительность: 30:07:00
ISBN: 978-5-9556-0099-4
Специальности: Программист, Математик
Лекция 8:

Разложение многочленов на неприводимые множители по модулю p. Лемма Гензеля

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Обсуждение алгоритма

Выше изложена общая схема алгоритма факторизации, основанного на разложении полинома над полем p - адических чисел и на рассмотрении произведений неприводимых над этим полем множителей. Различные этапы алгоритма допускают некоторые вариации, часть из которых мы и обсудим.

18.1. ЗАМЕЧАНИЕ. Наибольшее количество операций в рассмотренном алгоритме факторизации требуется при выполнении перебора множителей. Версия алгоритма, излагаемая Калтофеном в [ 10 ] , предполагает, что старший коэффициент первого множителя над полем \mathbb Z/p\mathbb Z совпадает со старшим коэффициентом исходного полинома f(x)\in \mathbb Z[x]. При этом из перебора исключался первый сомножитель, перебор осуществлялся по всем подмножествам множества \{  2,  \dots,
 r\}, максимальное возможное их количество равно 2^{r-1}. Если первый сомножитель разделить на \textrm{lc} (f), что можно выполнить в кольце \mathbb Z
p, то достаточно организовать перебор только по тем подмножествам множества \{ 1, \dots,
r\}, которые содержат не более [r/2] элементов. В действительности деление на \textrm{lc} (f) происходит не в кольце \mathbb Z p, а в некотором кольце вычетов \mathbb Z/q\mathbb Z, где q является степенью p. Целесообразно, по-видимому, это деление выполнять после подъема разложения на неприводимые множители до сравнения по модулю q. При этом коэффициенты полинома f/\textrm{lc} 
(f) увеличатся, что потребует большего времени для выполнения пробных делений, однако более существенным представляется сокращение времени работы за счет меньшего количества рассматриваемых вариантов перебора.

18.2. ЗАМЕЧАНИЕ. Ограничение вариантов перебора можно организовать не по максимальному количеству сомножителей, а по максимальной степени делителя. Достаточно ограничиться степенью [n/2], где n  =  \deg 
(f). При этом получается лучшее ограничение на необходимую точность разложения q. Количество рассматриваемых вариантов может быть в этом случае существенно большим.

18.3. ЗАМЕЧАНИЕ. Как отмечалось выше, проверку, представляет ли произведение g(x) неприводимых над O_p полиномов делитель f(x) в кольце \mathbb Z[x], целесообразнее производить путем пробного деления f(x) на g(x). Напомним, что коэффициенты полинома g(x) вычислены с определенной точностью, т.е. по модулю некоторого числа q, и представлены целыми числами. Прежде чем выполнять деление полинома f(x) на g(x), целесообразно проверить выполнение некоторых необходимых признаков делимости: например, свободный член полинома g(x) должен делить свободный член полинома f(x), можно оценить допустимую величину второго по старшинству коэффициента в g(x) и сравнить ее с фактической и т.д.

18.4. ЗАМЕЧАНИЕ. В процессе деления полиномов коэффициенты частного могут получиться по абсолютной величине больше, чем допустимые значения для коэффициентов делителя полинома f(x). В таком случае деление нужно немедленно прекращать и переходить к следующей комбинации делителей.

18.5. ЗАМЕЧАНИЕ. При изложении алгоритма уточнения решения мы пользовались квадратичным подъемом, который позволяет переходить от сравнения по модулю q к сравнению по модулю q^2. Чтобы избежать многократного превышения достигнутой точности над требуемой, на последнем шаге можно ограничиться меньшим значением q, либо применить линейный подъем.

18.6. ЗАМЕЧАНИЕ. Как отмечалось выше, одно из преимуществ использования p - адической метрики состоит в том, что неприводимые по модулю p многочлены могут иметь сколь угодно высокие степени. Может возникнуть предположение, что для любого полинома f(x)\in \mathbb Z[x] возможно выбрать простое число p так, что разложение f(x) по модулю p на неприводимые множители будет совпадать с разложением f(x) в кольце \mathbb Z[x]. Эта гипотеза неверна, можно привести пример неприводимого в \mathbb Z[x] многочлена сколь угодно большой степени, который по модулю любого простого p разлагается на линейные или квадратичные множители. Берлекэмпом следующая теорема приписывается Х.П.Ф. Свиннертону-Дайеру.

18.7. ТЕОРЕМА. Пусть n - целое число, а p_1,  \dots,  p_n - различные положительные простые числа. Тогда полином f_{p_1\dots  p_n}(x) со старшим коэффициентом, равным единице и степени 2^n , корни которого равны e_1\sqrt
{p_1}+ \dots + e_n\sqrt{p_n} , причем e_i = \pm 1 для всех 1\leq  i\leq  n, имеет целые коэффициенты и неприводим в \mathbb Z[x]. Более того, для любого простого числа q полином f_{p_1\dots  p_n}(x) по модулю q раскладывается на неприводимые в \mathbb Z_q[x] полиномы степени не выше второй.

Для доказательства теоремы нам потребуется знакомство с основными фактами теории Галуа. Читателю, не знакомому с теорией Галуа, рекомендуется либо ознакомиться с нею, например, просмотрев соответствующую лекцию в монографии ван дер Вардена, либо пропустить доказательство данной теоремы, что можно сделать без существенного ущерба для понимания дальнейшего материала.

ДОКАЗАТЕЛЬСТВО. Пользуемся следующими обозначениями:

\text{$f_k (x)  =  f_{p_1\dots  p_k}(x)$  и}\\
\text{$K_k = \mathbb Q ( \sqrt{p_1}, \dots, \sqrt{p_k})$, \; $1\leq k\leqn$}.

Методом математической индукции докажем, что f_n (x)\in \mathbb Z[x], [K_n:\mathbb Q ]=2^n и \theta= \sqrt{p_1}+ \dots + \sqrt{p_n} - примитивный элемент расширения K_n над \mathbb Q .

Для n=1 эти факты очевидны.

Пусть n > 1. Из предположения индукции f_{n-1}(x)\in  \mathbb Z[x] и из соотношения f_n(x)  =  f_{n-1}  (x  +\sqrt{p_n})  f_{n-1}(x  - 
\sqrt{p_n}) следует, что f_n(x)\in \mathbb Z[\sqrt{p_n},  x], причем коэффициенты симметричны относительно \sqrt{p_n} и -\sqrt{p_n}. Из фундаментальной теоремы о симметрических функциях следует, что эти коэффициенты должны быть целыми. Из предположения индукции [K_{n-1}: \mathbb Q ] = 2^{n-1} заключаем, что множество

B_k= \{ 1\} \bigcup \{ \sqrt{p_{i_1}\dots p_{i_j}} | j = 1,  \dots,  k,\quad
 1\leq i_1 < i_2 < \dots < i_j\leq k\}
образует базис линейного пространства K_k над \mathbb Q при 1\leq k\leq n-1.

Покажем, что \sqrt{p_n} не принадлежит линейному пространству, порожденному множеством B_{n-1}.

Предположим противное. Тогда существуют рациональные числа r_0
,\dots,
r_{i_1\dots i_j}, такие, что

\begin{equation}
  r_0  +\sum_{1\leq  i_1<\dots  <i_j<n}   r_{i_1\dots   i_j}\sqrt{p_{i_1}\dots
  p_{i_j}} = \sqrt{p_n} 
\end{equation} ( 18.7)
Поскольку все p_i, 1\leq i\leq n, - различные простые числа, в левой части равенства (18.7) содержится не менее двух ненулевых коэффициентов. Тогда существует p_k, такое, что в одном из ненулевых слагаемых содержится \sqrt{p_k}, а в другом - нет. Без потери общности полагаем p_k  =  p_{n-1}. Тогда равенство (18.7) можно переписать в виде
\begin{equation}
  s_0+s_1\sqrt{p_{n-1}} = \sqrt{p_n}, \text{ где } s_0, s_1\in K_{n-2} 
\end{equation} ( 18.8)
Из линейной независимости над \mathbb Q элементов множества B следует, что s_0\neq 0 и s_1\neq 0. Возведя обе части равенства (18.8) в квадрат и выполнив несложные преобразования, получим
\sqrt{p_{n-1}}=(p_n-s^2_0-s^2_1p_{n-1})/2s_0s_1\in   K_{n-2},
что противоречит предположению индукции. Следовательно, [K_n:  K_{n-1}]  =  2 и [K_n: \mathbb Q ] = 2^n.

Покажем, что K_n = \mathbb Q (\theta).

Пусть \alpha_1,\alpha_2,\dots  ,\alpha_{2^{n-1}} - корни полинома f_{n-1}(x), причем \alpha_1 =  \sqrt{p_1}+\dots
+\sqrt{p_{n-1}}. Рассмотрим полиномы g_1(x) = f_{n-1}(\alpha_1 +\sqrt{p_n} - x) и g_2(x) = x^2 -  p_n. Очевидно, что g_1, g_2\in \mathbb Q (\theta )[x] и имеют общийкорень \sqrt{p_n}. Однако g_1(-\sqrt{p_n})\neq 0, так как все корни полинома f_1(x) лежат в поле K_{n-1}, а \sqrt{p_n}\notin K_{n-1}. Следовательно, НОД  (g_1,
g_2)   =    x   -   \sqrt{p_n}\in   \mathbb Q (\theta   )[x], значит \theta    \in
\mathbb Q (\alpha_1,\sqrt{p_n}) и \mathbb Q (\theta)   =   \mathbb Q (\alpha_1  
,\sqrt{p_n}). По предположению индукции K_{n-1}=  \mathbb Q (\alpha_1), следовательно, \mathbb Q (\theta)  = 
K_n. Неприводимость полинома f_n(x) следует теперь из равенства степени этого полинома степени расширения над \mathbb Q , порождаемого его корнем.

Свойство разложимости по модулю любого простого числа q выводится из следующих фактов. Все квадратные корни из элементов p_i лежат в некотором квадратичном расширении поля \mathbb Z/q\mathbb Z, a поскольку все квадратичные расширения поля \mathbb Z/q\mathbb Z изоморфны, то можно считать, что все корни полинома f_n по модулю q лежат в поле Галуа GF(q^2). Если у полинома f_n имеется неприводимый по модулю q множитель степени m > 2, то его корни порождают поле GF(q^m) и не могут быть элементами поля GF(q^2).

18.8. УПРАЖНЕНИЕ Доказать, что полином x^4+1 является неприводимым над \mathbb Z, но разлагается на множители по модулю любого простого числа p.

18.9. УПРАЖНЕНИЕ. Организовать перебор вариантов сомножителей с ограничением по суммарной степени.

18.10. УПРАЖНЕНИЕ. Пусть f(x),g(x)\in\mathbb Z[x], g(x) делит f(x) в кольце \mathbb Q [x]. Получить оценку для абсолютной величины коэффициента, следующего за старшим в g(x), через коэффициенты полинома f(x).

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Марина Подлевских
Марина Подлевских

Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование?