Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП - отеты на билеты.docx
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
74.69 Кб
Скачать

55. Задача: Тест Ферма. Проверить простоту числа a.

Вопрос: Проверить тестом Ферма является ли число a простым. Вероятность ошибки не более 0.2. (a задаёт преподаватель; для примера a=91.)

Источник: Яковлев, Коржик. Гл. 3, §3.2.

Вероятность ошибки ≤ 0.2 за 1 раунд → нужно не менее k раундов, где (1/2)^k ≤ 0.2 → k≥1 (1/2=0.5>0.2), k=2 (0.25>0.2), k=3 (0.125<0.2). Достаточно k=3 раундов при ошибке ≤ (1/2)^3≈0.125<0.2.

Пример: a=91=7·13 (составное, но проверяем).

Раунд 1: выберем b=2.

2^{90} mod91. По т. Ферма для простых: 2^{90}≡1. Вычислим: 91=7·13. 2^6=64≡1(mod7) (порядок 2 в Z/7 = 3... 2^3=8≡1mod7, нет: 2^1=2,2^2=4,2^3=1. Порядок=3). 90=3·30, 2^{90}=(2^3)^{30}≡1^{30}=1(mod7). mod13: 2^{12}≡1(mod13). 90=12·7+6. 2^{90}=2^{12·7}·2^6≡1·64≡64-4·13=64-52=12≡-1(mod13). По КТО: 2^{90}≡1(mod7) и ≡-1(mod13). Это не ≡1(mod91). Тест дал 2^{90}≢1(mod91) → 91 составное.

Вывод: уже первый раунд показал, что 91 — составное.

(Для нечётных чисел, проходящих тест Ферма много раундов, — вероятно простые; но числа Кармайкла обходят тест.)

56. Задача: Тест Миллера-Рабина. Число a=?

Вопрос: Проверить тестом Миллера-Рабина является ли число a простым. Вероятность ошибки не более 0.05. (a задаётся преподавателем; для примера a=91.)

Источник: Яковлев, Коржик. Гл. 3, §3.3.

Вероятность ошибки ≤ 0.05: за каждый раунд ≤1/4. (1/4)^t ≤ 0.05 → t≥2 (1/16=0.0625>0.05), t=3 (1/64≈0.016<0.05). Нужно ≥3 раунда (уточнение: t=2: 0.25^2=0.0625>0.05; t=3: ≤0.016<0.05).

Пример: a=91. a-1=90=2^1·45 (s=1, d=45).

Раунд 1: b=2. x=2^{45} mod91.

2^{45} mod91: из вычислений выше, 2^{90}≡... Найдём 2^{45}: mod7: 2^3=1, 45=3·15, 2^{45}≡1(mod7). mod13: 2^{12}≡1(mod13). 45=12·3+9. 2^{45}≡2^9=512mod13. 512-39·13=512-507=5. По КТО: x≡1(mod7), x≡5(mod13). 13y₁≡1mod7, y₁=6. 7y₂≡1mod13, y₂=2. x=1·13·6+5·7·2=78+70=148 mod91=148-91=57.

x=57≠1 и ≠90. r=0 (только одна итерация t.к. s=1). Значит 91 — составное.

Вывод: тест Миллера-Рабина: 91 — составное. Число 91=7·13.

57. Задача: Решить систему уравнений по кто.

Вопрос: Решить систему уравнений (параметры задаются преподавателем). Для примера: x≡1(mod3), x≡2(mod5), x≡3(mod7).

Источник: Яковлев, Коржик. Гл. 2, §2.3. — Алгоритм КТО описан в вопросе 2.

M=3·5·7=105. M₁=35, M₂=21, M₃=15.

y₁=35⁻¹mod3: 35≡2(mod3). 2y≡1(mod3) → y₁=2.

y₂=21⁻¹mod5: 21≡1(mod5). y₂=1.

y₃=15⁻¹mod7: 15≡1(mod7). y₃=1.

x=1·35·2 + 2·21·1 + 3·15·1 = 70+42+45 = 157 mod105 = 52.

Ответ: x≡52(mod105).

Проверка: 52=17·3+1 ✓; 52=10·5+2 ✓; 52=7·7+3 ✓.

58. Задача: Вычисление символа Лежандра (b/n). n=31, b>10.

Вопрос: Решить пример (b/n) mod n, n=31, b>10. Описать каждое действие. (b выбрано: b=17.)

Источник: Яковлев, Коржик. Гл. 2, §2.4.

Вычислим (17/31) — символ Лежандра (31 простое).

Метод 1 — критерий Эйлера:

(17/31) ≡ 17^{(31-1)/2} = 17^{15} (mod 31).

17^2=289 mod31. 289-9·31=289-279=10. 17^2≡10.

17^4≡10^2=100 mod31=100-3·31=100-93=7.

17^8≡7^2=49 mod31=49-31=18.

17^{15}=17^8·17^4·17^2·17^1=18·7·10·17 mod31.

18·7=126 mod31=126-4·31=126-124=2.

2·10=20. 20·17=340 mod31. 340-10·31=340-310=30≡-1(mod31).

(17/31)=-1 → 17 является квадратичным невычетом по mod 31.

Метод 2 — закон взаимности:

(17/31): оба нечётные. (17-1)/2=8 чётное, (31-1)/2=15 нечётное → (17/31)=(31/17)=

31 mod17=14. (14/17)=(2/17)·(7/17).

(2/17): 17≡1(mod8) → (2/17)=1.

(7/17)=(17/7)·(-1)^{(7-1)(17-1)/4}=(17/7)·(-1)^{24}=(17/7).

17 mod7=3. (3/7)=3^3 mod7=27mod7=6≡-1. (3/7)=-1.

(7/17)=-1. (14/17)=1·(-1)=-1. (17/31)=-1 ✓

Вывод: (17/31)=-1, т.е. 17 — квадратичный невычет по mod31.