Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование? |
Разложение многочленов на неприводимые множители по модулю p. Лемма Гензеля
Лемма Гензеля
Лемма Гензеля в своей классической формулировке, принятой в
алгебре и теории чисел, утверждает, что разложение полинома на взаимно простые
сомножители, выполненное по модулю простого числа , можно
продолжить до
разложения в кольце
- адических чисел. Доказательство
ее можно найти,
например, в монографии Ван дер Вардена [4 с. 549]. Основу
доказательства
составляет итерационный процесс перехода от сравнения по модулю некоторой
степени числа
к сравнению по модулю большей степени
. Показывается, что этот
переход можно выполнить за конечное число шагов, вопросам сложности в
алгебраическом доказательстве уделяется мало внимания. Нас же в первую очередь
интересует алгоритм этого перехода с учетом возможности его практической
реализации и оценкой его времени работы.
Начнем с изложения леммы Гензеля в простейшем варианте: линейный подъем для двух сомножителей.
Предположим, что и по модулю некоторой
степени
простого числа
получено разложение
на взаимно простые
множители:
, где
. Мы хотим
продолжить это сравнение до сравнения по модулю
.
На первом шаге мы должны получить разложение ,
что достигается применением алгоритма Берлекэмпа. Предположим, что мы нашли
также полиномы
и
, такие, что
![]() |
( 18.1) |
Эти полиномы можно найти, применяя в кольце
расширенный алгоритм Евклида к полиномам
и
.
Полиномы
и
определены неоднозначно, однозначность получается,
если мы
потребуем, чтобы их степени были ниже степеней полиномов
и
соответственно.
В частности, полиномы
и
можно
заменить их остатками от
деления на
и
в кольце
Более того, без потери общности мы можем предполагать, что старшие
коэффициенты
полиномов равны
, а старшие коэффициенты
полиномов
совпадают со
старшим коэффициентом полинома
. В дальнейшем мы считаем это
условие выполненным,
хотя оно может противоречить выбору систем представителей по
модулю
.
Полиномы мы будем искать
в виде
,
. Сравнения


Обе части этого сравнения делятся на . После деления
получаем сравнение
.
В правой части этого сравнения мы можем заменить
и
на
и
соответственно. Обозначим
. Домножим
сравнение (18.1) на
и приравняем коэффициенты
при
и
.
Получим
,
.
Итак, алгоритм линейного подъема Гензеля можно записать в следующем виде.
А30. АЛГОРИТМ (линейного подъема для двух сомножителей).
![\begin{equation}\\
\text{Дано:\quad$f(x)$, $g_1(x)$,$h_1(x)$, $\tilde g(x)$, $\tilde h(x)\in \mathbb Z[x]$,}\\
\text{\qquad $p \in \mathbb Z$ - простое число, }\\
\text{\qquad $f(x)\equiv g_1(x)h_1(x) \pmod p$,} \\
\text{\qquad $1\equiv g_1(x)\tilde g(x) + h_1(x)\tilde h(x) \pmod
p$, $k\in \N$ }\\
\text{Надо: \qquad $g$ и $h$ такие, что $f(x)\equiv g(x)h(x) \pmod{p^k}$} \\
\text{Начало}\\
\text{$g:=g_1$}\\
\text{$h:=h_1$}\\
\text{цикл для $t$ от $1$ до $k-1$}\\
\text{\qquad $d:=\dfrac{f-g\cdot h}{p^t} \pmod p$}\\
\text{\qquad $g_c:= d\cdot \tilde h \pmod{p, g_1}$}\\
\text{\qquad $h_c:= d\cdot \tilde g \pmod{p, h_1}$}\\
\text{\qquad $g:=g+g_c\cdot p^t$}\\
\text{\qquad $h:=h+h_c\cdot p^t$}\\
\text{конец цикла}\\
\text{Конец}
\end{equation}](/sites/default/files/tex_cache/fc67300a5b7b3b14fda5def92749bc4d.png)
Отметим, что для применения этого алгоритма для произвольного числа сомножителей нужно получить соответствующее представление единицы:
![1\equiv\sum_i\biggl(\prod_{j\ne i}g[j]\biggr)\tilde g[i] \pmod p,](/sites/default/files/tex_cache/3c19bf69de46e96036bfb9a3a6ef8ebe.png)
![\deg\tilde g[i] <\deg g[i]](/sites/default/files/tex_cache/569f1e747d8b8bfec6be52c776f7f901.png)

![\tilde g[i] \pmod p](/sites/default/files/tex_cache/83d6a14ce6ac04680230648cdfe0e99f.png)
![F_p[x]](/sites/default/files/tex_cache/08046df968872bddd17f9de3e18ba88a.png)

![g[i]](/sites/default/files/tex_cache/e6a43ae58299bf21c6e781a53f6de017.png)
\bigr)} \pmod
p](/sites/default/files/tex_cache/768ebb0346c9b8568f8c34c7f5c8b263.png)
Снова предполагаем, что старший коэффициент полинома
совпадает со
старшим коэффициентом полинома
, а старшие коэффициенты
остальных
сомножителей
равны
.