Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например,...
Transcript of Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например,...
![Page 1: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/1.jpg)
Семинар 4
Самохина Марина
![Page 2: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/2.jpg)
Модулярная арифметика
• Два целых числа a и b называются сравнимыми по модулю m, если (a − b) делится на m
a ≡ b (mod m) ⇔m | (a − b)
• Все остатки по модулю n образуют кольцо вычетов, обозначаемое Z/nZ. Число элементов в кольце Z/nZ равно n
• Например, кольцо Z/6Z состоит из 6элементов: {0, 1, 2, 3, 4, 5}
Определения
![Page 3: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/3.jpg)
Модулярная арифметика
• Кольцо — это множество R, на котором заданы две бинарные операции: + и х (называемые сложение и умножение), со следующими свойствами:
1. Для любых a, b из R: a + b = b + a — коммутативность сложения2. Для любых a, b, c из R: a + (b + c) = (a + b) + c — ассоциативность
сложения;3. Существует 0 из R; для любого a из R: a + 0 = 0 + a = a —
существование нейтрального элемента относительно сложения4. Для любых a из R; существует b из R: a + b = b + a = 0 —
существование обратного элемента относительно сложения5. Для любого a из R: (ab)c=a(bc) — ассоциативность умножения6. Для любых a, b, c из R: a х(b + c) = a хb + a хc и (b + c) х a = b хa +
c хa — дистрибутивность
R -
аб
ел
ева
гр
уп
па
по
сл
ож
ени
ю
Определения
![Page 4: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/4.jpg)
Кольца
![Page 5: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/5.jpg)
Кольца
• Кольца могут обладать следующими свойствами:
1. Существование единицы: существует e из R: для любого a из R: a х e = e х a = a (кольцо с единицей)
2. коммутативность умножения: для любых a, b из R:a х b = b х a (коммутативное кольцо)
3. отсутствие делителей нуля: для любых a, b из R: a х b = 0 следовательно a = 0 или b = 0
• Обычно под кольцом понимают ассоциативное кольцо с единицей
• Кольца, для которых выполнены все вышеперечисленные условия, называются целостными
![Page 6: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/6.jpg)
Действия в кольце
• Элементы кольца можно складывать, вычитать и умножать как обычные числа. Например, в кольце Z/6Z выполняются следующие равенства:
2 + 3 ≡ 5 (mod 6)
3 − 5 ≡ 4 (mod 6)
2 · 4 ≡ 2 (mod 6)
![Page 7: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/7.jpg)
Деление в кольце
• Деление в кольце Z/nZ возможно не всегда.
• Например, в кольце Z/8Z нельзя разделить 1 на 2, зато можно разделить 2 на 3 (в результате получим: 6)
![Page 8: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/8.jpg)
Деление в кольце
• Рассмотрим уравнение:
ax ≡ b (mod m)
• В нем a и b — параметры, x — неизвестное.Если такой x существует и единственный, то xназывается частным от деления b на a
![Page 9: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/9.jpg)
Деление в кольце
• Перепишем уравнение следующим образом:ax + cm = b
• Если b не делится на (a, m), то решений нет и деление невозможно
• Для решения данного уравнения найдем x, y, такие что:
(a, m) = ax + my• Так как b = w(a, m), то получаем:
b = a(xw) + m(yw) • Это одно из решений исходного• У исходного уравнения будет ровно (a, m) решений• Деление b на a в Z/nZ возможно только в случае, когда
(a, m) = 1. Если n — простое, то деление в Z/nZвозможно на все элементы, отличные от нуля.
![Page 10: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/10.jpg)
Модулярная арифметика
![Page 11: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/11.jpg)
Модулярная арифметика
• Модулярная арифметика основывается на Китайской теореме об остатках (КТО)
• Около 100 г. до н. э. китайский математик СунЦу (Sun-Tsu) решил такую задачу: найти число, дающее при делении на 3, 5, 7, остатки 2, 3, 2 соответственно
![Page 12: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/12.jpg)
Китайская теорема об остатках
• Если числа a1 , a2 ,… , an попарно взаимно просты, то для любых остатков r1 , r2 ,… , rn
таких, что 0≤ ri< ai при всех i=1,2,…,n , найдётся число N, которое при делении на ai даёт остаток ri при всех i=1,2,…,n
Формулировка
![Page 13: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/13.jpg)
Китайская теорема об остатках
• Применим индукцию по n
• При n = 1 утверждение теоремы очевидно
• Пусть теорема справедлива при n = k − 1, т. е. существует число M, дающее остаток ri при делении на ai при i = 1, 2, …, k - 1
• Обозначим
d = a1 a2 … ak-1
• Pассмотрим числа
M, M + d, M + 2d,… , M + (ak - 1)d
Доказательство
![Page 14: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/14.jpg)
Китайская теорема об остатках
• Покажем, что хотя бы одно из этих чисел даёт остаток rk при делении на ak
• Допустим это не так• Т.к. количество чисел равно ak, а возможных
остатков при делении этих чисел на ak может быть не более чем ak − 1 (ведь ни одно число не даёт остаток rk ), то среди них найдутся два числа, имеющих равные остатки (принцип Дирихле)
• Пусть это числа M + sd и M + td при 0 ≤s ≤ ak - 1и 0 ≤ t ≤ ak – 1
Доказательство
![Page 15: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/15.jpg)
Китайская теорема об остатках
• Тогда их разность
(M + sd) − (M + td) = (s − t)d
делится на ak, что невозможно, т. к.
0 < | s − t | < ak и d = a1 a2 … ak-1
взаимно просто с ak, ибо числа a1 a2 … ak-1
попарно взаимно просты (по условию)
Противоречие
Доказательство
![Page 16: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/16.jpg)
Китайская теорема об остатках
• Таким образом, среди рассматриваемых чисел найдётся число N, которое при делении на ak
даёт остаток rk
• В то же время при делении на a1 a2 … ak-1 число N даёт остатки r1 r2 … rk-1 соответственно
Теорема доказана
Доказательство
![Page 17: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/17.jpg)
Функция Эйлера
• Функция Эйлера φ(a) определяется для всех натуральных a и представляет собою количество чисел от 1 до a взаимно простых с a
• Примеры:
φ(1) = 1, φ(4) = 2
φ(2) = 1, φ(5) = 4
φ(3) = 2, φ(6) = 2
Определения
![Page 18: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/18.jpg)
Функция Эйлера
• Функция Эйлера мультипликативна:
для любых n и m таких, что (n, m) = 1 выполняется
φ(nm) = φ(n)φ(m)
• Для простого p выполняются равенства:
φ(p) = p − 1
φ(pn) = pn−1(p − 1)
• Эти свойства позволяют быстро вычислять функцию Эйлера, если известно разложение числа n на простые множители
![Page 19: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/19.jpg)
Теорема Эйлера
• При m > 1 и (a, m) = 1 верно следующее:
aφ(m) ≡ 1 (mod m)
Формулировка
![Page 20: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/20.jpg)
Теорема Эйлера
• Пусть x1,..., x φ(m) — все различные натуральные числа, меньшие m и взаимно простые с ним
• Рассмотрим всевозможные произведения xi aдля всех i от 1 до φ(m)
• Поскольку a взаимно просто с m и xi взаимно просто с m, то и xi a также взаимно просто с m, то есть:
xi a ≡ xj (mod m) для некоторого j
Доказательство
![Page 21: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/21.jpg)
Теорема Эйлера
• Отметим, что все остатки xi a при делении на m различны
• Действительно, пусть это не так, т.е. существуют такие i1 ≠i2, что
xi 1 a ≡ xi 2 a (mod m)
• Тогда (xi 1 - xi 2 ) a ≡ 0 (mod m)
• Так как a взаимно просто с m, то последнее равенство равносильно тому, что
xi 1 - xi 2≡ 0 (mod m) или xi 1 ≡ xi 2 (mod m)
Доказательство
![Page 22: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/22.jpg)
Теорема Эйлера
• Это противоречит тому, что числа x1,..., x φ(m)
попарно различны по модулю m
• Перемножим все равенства xi a ≡ xj (mod m),получим:
x1... x φ(m) aφ(m) ≡ x1... x φ(m) (mod m)
или
x1... x φ(m) (aφ(m) -1)≡0(mod m)
Доказательство
![Page 23: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/23.jpg)
Теорема Эйлера
• Так как число x1... x φ(m) (mod m) взаимно просто с m, то последнее равенство равносильно тому, что
aφ(m) -1≡ 0(mod m)
Или
aφ(m) ≡ 1 (mod m)
Теорема доказана
Доказательство
![Page 24: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/24.jpg)
Теорема Ферма
• Частным случаем теоремы Эйлера при простом m является малая теорема Ферма
• Для любого простого p и любого натурального a верно следующее:
ap ≡ a (mod p)
или
ap - a делится на p
Формулировка
![Page 25: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/25.jpg)
Алгоритм Евклида
• Алгоритм для нахождения наибольшего общего делителя двух целых чисел
• Применим также для нахождения наибольшего общего делителя многочленов, кольца в которых применим алгоритм Евклида получили название Евклидовы кольца
![Page 26: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/26.jpg)
Алгоритм Евклида
• Свой известный алгоритм Евклид придумал для решения задачи о соизмеримости двух отрезков
• Общей мерой отрезков с длинами L1 и L2
называется отрезок с наибольшей возможной длиной L, который можно уложить без остатка как в первом отрезке, так и во втором
![Page 27: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/27.jpg)
Алгоритм Евклида
• Меньший отрезок (длины L2) укладывается в большем (длины L1) максимально возможное число, скажем a1, раз, после чего остается отрезок длины L1 − a1L2, который обозначим L3
• Затем повторяем эту операцию с L2 и L3 и т. д.
• Работу алгоритм заканчивает на том шаге, скажем с номером k, когда полученный на предыдущем шаге отрезок Lk+1 укладывается на отрезке Lk
целое число раз
• Ответом будет Lk+1
Формулировка
![Page 28: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/28.jpg)
Расширенный алгоритм Евклида
• Немного дополнив алгоритм Евклида, можно получать с его помощью целые коэффициенты x и y, для которых
(a, b) = GCD(a, b) = ax + by
• GCD — Greatest Common Divisor — Наибольший Общий Делитель)
Формулировка
![Page 29: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/29.jpg)
Время работы алгоритма Евклида
• Обозначим e(m, n) число шагов алгоритма Евклида, примененного к натуральным числам n и m
• До сих пор наиболее известным результатом о функции e(m, n) остается найденная французским математиком Габриэлем Ламе (Gabriel Lamé, 1795–1870) в первой половине 19-го века (1844) оценка сверху:
e(m, n) ≤ [logφ51⁄2(max(m, n) + 1⁄2)] − 1, где φ = (1 + 51⁄2) ⁄ 2
• Данная оценка является точной и достигается при соседних числах Фибоначчи: m = Fk+1, n = Fk
![Page 30: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/30.jpg)
Проверка чисел на простоту
![Page 31: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/31.jpg)
Проверка чисел на простоту
• Самый простой способ проверки числа n на простоту — перебор делителей (trial division)
• Тест на основе малой теоремы Ферма
![Page 32: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/32.jpg)
Тест на основе малой теоремы Ферма и алгоритма Евклида
• Из малой теорема Ферма следует, что если сравнение
an-1 ≡ 1 (mod n)
не выполнено хотя бы для одного числа a в интервале {1, 2, …, n−1}, то n — составное
![Page 33: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/33.jpg)
Тест на основе малой теоремы Ферма и алгоритма Евклида
1. выбираем случайное число a из {1, 2, …, n−1} и проверяем с помощью алгоритма Евклида условие (a, n) = 1;
2. если оно не выполняется, то ответ «n —составное»;
3. проверяем выполнимость сравнения an-
1 ≡ 1 (mod n) ;4. если сравнение не выполнено, то ответ «n —
составное»; 5. если сравнение выполнено, то ответ неизвестен,
но можно повторить тест еще раз
Формулировка
![Page 34: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/34.jpg)
Числа Кармайкла (Carmichael Numbers)
• Особо плохими для теста Ферма являются так называемые числа Кармайкла
• Они обладают следующим свойством: для любого a такого, что (a, n) = 1 верно
an−1 ≡ 1 (mod n) • Первые три числа Кармайкла: 561, 1105, 1729• Среди первых 100000000 чисел их всего 255• В 1994 г. было доказано, что таких чисел
бесконечно много
![Page 35: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/35.jpg)
Вероятностный тест Миллера-Рабина
• Пусть n — нечетное и n − 1 = 2st, t — нечетное.
• Если число n является простым, то при всех a > 1 выполняется сравнение
an−1 ≡ 1 (mod n)
• Поэтому, рассматривая элементы {at, a2t, …, a2s−1t} можно заметить, что либо среди них найдется равный −1 (mod n), либо at ≡ 1 (mod n)
• На этом замечании основан следующий вероятностный тест простоты Миллера-Рабина
![Page 36: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно](https://reader033.fdocument.pub/reader033/viewer/2022050605/5fac40808fcb7925e400e383/html5/thumbnails/36.jpg)
Вероятностный тест Миллера-Рабина
1. Выбираем случайное число a из интервала {1, 2, …, n−1} и проверяем с помощью алгоритма Евклида условие (a, n) = 1;
2. Если оно не выполняется, то ответ «n — составное»; 3. Вычисляем at (mod n); 4. Если at ≡ ±1 (mod n), то переходим к п. 1; 5. Вычисляем a2t, …, a2s−1t до тех пор, пока не появится −1; 6. Если ни одно из этих чисел не равно −1, то ответ «n —
составное»; 7. Если мы достигли −1, то ответ неизвестен (и тест можно
повторить еще раз). • Составное число не будет определено как составное с
вероятностью 1 ⁄ 4