Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например,...

36
Семинар 4 Самохина Марина

Transcript of Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например,...

Page 1: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Семинар 4

Самохина Марина

Page 2: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Модулярная арифметика

• Два целых числа 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, зато можно

Модулярная арифметика

• Кольцо — это множество 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, зато можно

Кольца

Page 5: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Кольца

• Кольца могут обладать следующими свойствами:

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, зато можно

Действия в кольце

• Элементы кольца можно складывать, вычитать и умножать как обычные числа. Например, в кольце 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, зато можно

Деление в кольце

• Деление в кольце Z/nZ возможно не всегда.

• Например, в кольце Z/8Z нельзя разделить 1 на 2, зато можно разделить 2 на 3 (в результате получим: 6)

Page 8: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Деление в кольце

• Рассмотрим уравнение:

ax ≡ b (mod m)

• В нем a и b — параметры, x — неизвестное.Если такой x существует и единственный, то xназывается частным от деления b на a

Page 9: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Деление в кольце

• Перепишем уравнение следующим образом: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, зато можно

Модулярная арифметика

Page 11: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Модулярная арифметика

• Модулярная арифметика основывается на Китайской теореме об остатках (КТО)

• Около 100 г. до н. э. китайский математик СунЦу (Sun-Tsu) решил такую задачу: найти число, дающее при делении на 3, 5, 7, остатки 2, 3, 2 соответственно

Page 12: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Китайская теорема об остатках

• Если числа 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, зато можно

Китайская теорема об остатках

• Применим индукцию по 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, зато можно

Китайская теорема об остатках

• Покажем, что хотя бы одно из этих чисел даёт остаток 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, зато можно

Китайская теорема об остатках

• Тогда их разность

(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, зато можно

Китайская теорема об остатках

• Таким образом, среди рассматриваемых чисел найдётся число N, которое при делении на ak

даёт остаток rk

• В то же время при делении на a1 a2 … ak-1 число N даёт остатки r1 r2 … rk-1 соответственно

Теорема доказана

Доказательство

Page 17: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Функция Эйлера

• Функция Эйлера φ(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, зато можно

Функция Эйлера

• Функция Эйлера мультипликативна:

для любых 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, зато можно

Теорема Эйлера

• При m > 1 и (a, m) = 1 верно следующее:

aφ(m) ≡ 1 (mod m)

Формулировка

Page 20: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Теорема Эйлера

• Пусть 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, зато можно

Теорема Эйлера

• Отметим, что все остатки 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, зато можно

Теорема Эйлера

• Это противоречит тому, что числа 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, зато можно

Теорема Эйлера

• Так как число 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, зато можно

Теорема Ферма

• Частным случаем теоремы Эйлера при простом m является малая теорема Ферма

• Для любого простого p и любого натурального a верно следующее:

ap ≡ a (mod p)

или

ap - a делится на p

Формулировка

Page 25: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Алгоритм Евклида

• Алгоритм для нахождения наибольшего общего делителя двух целых чисел

• Применим также для нахождения наибольшего общего делителя многочленов, кольца в которых применим алгоритм Евклида получили название Евклидовы кольца

Page 26: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Алгоритм Евклида

• Свой известный алгоритм Евклид придумал для решения задачи о соизмеримости двух отрезков

• Общей мерой отрезков с длинами L1 и L2

называется отрезок с наибольшей возможной длиной L, который можно уложить без остатка как в первом отрезке, так и во втором

Page 27: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Алгоритм Евклида

• Меньший отрезок (длины L2) укладывается в большем (длины L1) максимально возможное число, скажем a1, раз, после чего остается отрезок длины L1 − a1L2, который обозначим L3

• Затем повторяем эту операцию с L2 и L3 и т. д.

• Работу алгоритм заканчивает на том шаге, скажем с номером k, когда полученный на предыдущем шаге отрезок Lk+1 укладывается на отрезке Lk

целое число раз

• Ответом будет Lk+1

Формулировка

Page 28: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Расширенный алгоритм Евклида

• Немного дополнив алгоритм Евклида, можно получать с его помощью целые коэффициенты x и y, для которых

(a, b) = GCD(a, b) = ax + by

• GCD — Greatest Common Divisor — Наибольший Общий Делитель)

Формулировка

Page 29: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Время работы алгоритма Евклида

• Обозначим 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, зато можно

Проверка чисел на простоту

Page 31: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Проверка чисел на простоту

• Самый простой способ проверки числа n на простоту — перебор делителей (trial division)

• Тест на основе малой теоремы Ферма

Page 32: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Тест на основе малой теоремы Ферма и алгоритма Евклида

• Из малой теорема Ферма следует, что если сравнение

an-1 ≡ 1 (mod n)

не выполнено хотя бы для одного числа a в интервале {1, 2, …, n−1}, то n — составное

Page 33: Семинар 4 - MIPT · Семинар 4 Самохина Марина ... •Например, в кольце z/8z нельзя разделить 1 на 2, зато можно

Тест на основе малой теоремы Ферма и алгоритма Евклида

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, зато можно

Числа Кармайкла (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, зато можно

Вероятностный тест Миллера-Рабина

• Пусть 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, зато можно

Вероятностный тест Миллера-Рабина

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