Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование? |
Наибольший общий делитель и последовательности полиномиальных остатков
Что касается необходимого количества редукций (количества простых чисел, по модулю которых выполняются вычисления), то можно поступить одним из следующих способов:
- оценить заранее достаточное число редукций, пользуясь, например, оценками для коэффициентов делителей заданного многочлена, приведенными в "Алгоритмы Кронекера. Разложение на множители, свободные от квадратов. Факторизация" ;
- после каждой редукции пересчитывать коэффициенты искомого НОД, пользуясь КТО; если применение новой редукции не меняет этих коэффициентов, то проверить, делит ли полученный многочлен исходные. Если да, то задача решена, иначе выполнять следующие редукции.
Отметим, что в этой задаче, применяя КТО, мы должны находить числа с данными вычетами не из множества неотрицательных чисел , а из симметричной системы (при четном , т. е. когда в качестве одного из модулей используется 2, система получается немного несимметричной: от до , где ).
Основная же проблема состоит в том, как согласовать вычисления для различных значений . Здесь можно предложить два подхода.
Во-первых, можно свести задачу к случаю, когда искомый НОД является нормированным многочленом. Для этого заметим, что старший коэффициент искомого НОД делит старшие коэффициенты исходных многочленов, а значит, делит НОД старших коэффициентов этих многочленов. Обозначим этот НОД через . Перейдем от переменной к переменной . Для этого нам понадобится домножить исходные многочлены на некоторые степени числа , чтобы после замены получить многочлены и с целочисленными коэффициентами. После этого решаем задачу для многочленов и , выполняя все вычисления в кольцах вычетов над нормированными многочленами. Получаем в . К сожалению, , в общем случае, не является искомым наибольшим общим делителем, а отличается от него некоторым целочисленным множителем. Чтобы найти искомый НОД, достаточно вычислить примитивную часть многочлена .
Недостаток этого метода в том, что при достаточно высоких степенях исходных многочленов коэффициенты промежуточных многочленов (от ) становятся очень большими, что требует большего количества чисел , используемых для редукций, и более громоздких вычислений при применении КТО.
А 8. АЛГОРИТМ (Модулярный НОД).
Предписание "Применить КТО к " означает следующее. На входе: — простое число, — натуральное число, не делящееся на , коэффициенты многочленов и рассматриваются как представители смежных классов по модулю и соответственно. Вычисляются числа , такие что и , , . На выходе и .
6.16. ЗАДАЧА. Доказать корректность представленного алгоритма.
6.17. ПРИМЕР. Пользуясь модулярным алгоритмом, вычислим НОД многочленов и .
Наибольший общий делитель старших коэффициентов равен 4. Вычисляя , получим . Домножая на 4 и переходя к симметричной системе вычетов, снова получим . Легко проверить, что полученный многочлен не делит ни один из исходных многочленов.
В качестве следующего простого числа берем . Вычисляя , получим . Поскольку , заключаем, что является "плохой редукцией".
Переходим к . Получаем . Домножая на 4, получим . Пользуясь китайской теоремой об остатках, решаем систему сравнений
Получаем . Переходя к симметричной системе вычетов, получаем . Убеждаемся, что не делит исходные многочлены в .Берем . Получаем . Домножая на 4, получим . Пользуясь китайской теоремой об остатках, решаем систему сравнений
Получаем . Переход к симметричной системе вычетов ничего не меняет, и в итоге мы получаем . Убеждаемся, что делит исходные многочлены в и является наибольшим общим делителем исходных многочленов.