Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 5. Розв’язування алгебраїчних конгруенці...docx
Скачиваний:
9
Добавлен:
17.08.2019
Размер:
1.03 Mб
Скачать

Ю.Д.Жданова. Лекції з ВГПМ. М2 ТЧ обчислювальні алгоритми. Лекція № 5

Лекція № 5 Тема: Розв’язування алгебраїчних конгруенцій

План лекції:

1. Розв’язування квадратних конгруенцій за простим модулем. Алгоритм Шенкса-Тонеллі.

2. Алгебраїчні конгруенції -го степеня за простим модулем та способи їх розв'язування.

3. Число розв’язків конгруенції -го степеня за простим модулем.

4. Алгебраїчні конгруенції -го степеня за складеним модулем та способи їх розв'язування.

5. Алгоритм Берлекемпа розкладання многочлена на незвідні множники над скінченним полем.

1. Розв’язування квадратних конгруенцій за простим модулем

Розглянемо квадратну двочленну конгруенцію за простим непарним модулем :

, (1)

За допомогою очевидної заміни змінної до конгруенції (1) зводиться довільне рівняння

.

Число називається квадратичним лишком за модулем , якщо конгруенція (1) має розв’язки. Число називається квадратичним нелишком за модулем , якщо конгруенція (1) розв’язків не має.

За критерієм Ейлера для визначення квадратичних лишків і нелишків., якщо , то конгруенція (1) має розв’язки тоді і тільки тоді, коли , тобто

(2)

Готової формули для розв’язування алгебраїчних конгруенцій другого степеня не існує.

Відомі окремі випадки:

  1. Якщо , то .

  2. Якщо , то у випадку , а у випадку .

У випадках , для розв’язування (1) застосовується апроксимаційний (наближувальний) алгоритм, який полягає у наступному:

  1. Обчислити значення символу Лежандра . Якщо , – квадратичний лишок, якщо , квадратичний нелишок.

  2. Записати число у вигляді добутку парного і непарного чисел: , .

  3. Знайти випадковий квадратичний нелишок за модулем , тобто для виконано співвідношення .

  4. Покласти .

  5. Обчислити . ( – наближене значення кореня конгруенції ).

Квадратний корінь з за модулем шукати у вигляді .

  1. Знайти степінь , . Щоб визначити число , , запишемо його у двійковій системі числення

.

  1. Визначити, які значення (0 або 1) набувають двійкові цифри наступним чином:

7.1) Обчислити .

7.2) Обчислити , .

Покласти ,

, .

  1. Відповідь: – квадратний корінь з за модулем .

Приклад 1. Розв’язати конгруенцію:

Розв’язання

  1. Обчислимо значення символу Лежандра

Отже, конгруенція має розв’язки.

  1. Запишемо число у вигляді добутку парного і непарного чисел: . Отже, , .

  2. Знайдемо квадратичний нелишок за модулем . Нехай , тому що

.

  1. Покладемо

  1. Обчислимо

Квадратний корінь з 18 за модулем шукаємо у вигляді

  1. Знайдемо степінь , . Щоб визначити число , , запишемо його у двійковій системі числення:

  1. Визначимо, які значення (0 або 1) набувають двійкові цифри наступним чином:

7.1) Обчислимо . За розширеним алгоритмом Евкліда визначимо:

.

7.2) Обчислимо , .

Значить, .

Значить, .

Отже, .

  1. Шукані корені

,

або , .

  1. Перевірка: .

Алгоритм Шенкса-Тонеллі (Shanks-Tonelli) добування квадратного кореня є більш ефективним, ніж апроксимаційний алгоритм, у випадку, коли , або . Збережемо позначення такі, як для попереднього алгоритму.