Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование? |
Лекция 10: Алгоритмы факторизации, основанные на выборе малого вектора в решетке
А40. АЛГОРИТМ (неприводимый-множитель (f, h, g, p)).
![\begin{equation*}
\text{Дано:\quad $ p\in \mathbb Z $ , $ f, h\in\mathbb Z [x] $ }\\
\text{ \qquad $ h $ - неприводимый по модулю $ p $ многочлен, делящий $ f $ по модулю $ p $ }}\\
\text{Надо: \qquad $ g $ - неприводимый над $ \mathbb Z $ многочлен, делящий $ f $ и делящийся
по модулю $ p $ на $ h $ .}}\\
\text{Обозначения:\quad $ n== f $ .степень}\\
\text{\qquad $ l == h $ .степень}\\
\text{Переменные:\qquad целое $ k $} \\
\text{\qquad решетка $ L $} \\
\text{Начало}\\
\text{найден множитель := "нет"}\\
\text{цикл для $ m $ от $ l $ до $ n-1 $ пока не найден
множитель}\\
\text{\qquad вычислить $ k $ , такое, чтобы выполнялось неравенство
(21.30)}\\
\text{\qquad пользуясь леммой Гензеля, поднять сравнение $ h\cdot u\equiv
f\kern-1pt \pmod {\kern-1pt p} $ }\\
\text{\qquad \qquad до сравнения по модулю $ p^k $ }\\
\text{\qquad получить базис решетки $ L $ по формулам (21.25)}\\
\text{\qquad редуцировать базис решетки $ L $ }\\
\text{если $ L $ .базис[1] удовлетворяет (21.31) то}\\
\text{\qquad \qquad $ g $ .степень $ := m $} \\
\text{\qquad \qquad $ g $ .коэффициенты $ := L $ .базис[1]}\\
\text{\qquad \qquad найден множитель := "да"}\\
\text{конец если}\\
\text{конец цикла}\\
\text{Конец}
\end{equation*}](/sites/default/files/tex_cache/a3263ab02861fbbb043dab1c55127983.png)
Недостаток этого алгоритма заключается в том, что для каждого
значения нужно применять алгоритм Гензеля, строить новую решетку
и редуцировать ее
базис. Следующее предложение позволяет применять алгоритм построения
редуцированного базиса решетки только один раз для максимального
возможного значения
.
21.6. ПРЕДЛОЖЕНИЕ. Предположим, что обозначения выбраны так же,
как и в
предложении 21.5, и что выполнены
те же предположения. Предположим кроме
того, что существуют индексы , такие, что
![]() |
( 21.32) |
Пусть - наибольшее значение
, для которого
выполнено (21.32). Тогда



ДОКАЗАТЕЛЬСТВО.
Пусть обозначает множество индексов
, для которых выполнено неравенство
(21.32),
- мощность
множества
. Тогда
делит
для
любого
,
следовательно,
делит многочлен
.
Положим
. Поскольку
для всех
, эти многочлены принадлежат
-модулю
, ранг
которого равен
. В силу
линейной
независимости векторов
получаем
![]() |
( 21.33) |





Из неравенства (21.30) следует, что индексы от 1 до принадлежат множеству
.
Поскольку
делится на
и выполняется
неравенство (21.33), получаем
,
откуда
.
Остается установить, что с точностью до знака совпадает
с
. Для
этого достаточно показать, что многочлен
примитивный, т.е.
наибольший общий делитель его коэффициентов равен 1, а примитивность
многочлена
легко вытекает из примитивности хотя бы
одного
,
.
Возьмем произвольный индекс и пусть
. Тогда
многочлен
делится на
,
следовательно,
,
так как
. Поскольку
принадлежит базису
решетки
,
получаем
.
Полученный результат используется в следующем алгоритме.
А41. АЛГОРИТМ (неприводимый-множитель (f, h, g, p)).
![\begin{equation*}
\text{Дано:\quad $ p\in\mathbb Z $ , $ f,h\in\mathbb Z [x] $} \\
\text{\qquad $ h $ - неприводимый по модулю $ p $ многочлен, делящий $ f $ по модулю $ p $ }}\\
\text{Надо: \qquad $ g $ - неприводимый над $ \mathbb Z $ многочлен, делящий $ f $ и делящийся
по модулю $ p $ на $ h $ .}}\\
\text{Обозначения:\quad $ n == f $ .степень}\\
\text{\qquad $ l == h $ .степень}\\
\text{Переменные:\quad
\qquad цел $ k,t $} \\
\text{\qquad решетка $ L $ }\\
\text{Начало}\\
\text{найден множитель := "нет"}\\
\text{вычислить $ k $ , такое, чтобы выполнялось неравенство (21.30) для $ m=n-1 $ }\\
\text{пользуясь леммой Гензеля, поднять сравнение $ h\cdot u\equiv f \pmod p $ до сравнения по модулю $ p^k $ }\\
\text{построить базис решетки $ L $ по формулам (21.25)}\\
\text{редуцировать базис решетки $ L $} \\
\text{найти максимальное значение $ t $ , для которого $ L $ .базис $ [t] $ удовлетворяет (21.31)}\\
\text{если $ t > 0 $ то} \\
\text{\qquad $ g $ .степень $ := n-t $} \\
\text{\qquad $ g $ .коэффициенты $:= НОД$ ( $ L $ .базис[1], \dots, $ L $ .базис[t])}\\
\text{\qquad найден множитель := "да"}\\
\text{конец если }\\
\text{ Конец }
\end{equation*}](/sites/default/files/tex_cache/4ca93e936988b55fcc20e3d61bdd3555.png)