Алгебра и теория чисел -...
Transcript of Алгебра и теория чисел -...
![Page 1: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/1.jpg)
Алгебра и теория чисел
Иван Казменко
Кружок обучения мастерству программирования при мат-мехе СПбГУ
Четверг, 4 октября 2012 года
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 1 / 6
![Page 2: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/2.jpg)
Оглавление
1 Вычисления по модулюРабота с остатками по модулю«Медленное» умножение«Быстрое» возведение в степень
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 2 / 6
![Page 3: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/3.jpg)
Вычисления по модулю Работа с остатками по модулю
Работа с остатками по модулю
Постановка задачи: нужно производить арифметические действия надцелыми числами по модулю m.
Лемма 1: (a± b) mod m = ((a mod m)± (b mod m)) mod m.Лемма 2: (a · b) mod m = ((a mod m) · (b mod m)) mod m.Для деления такое равенство неверно.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 3 / 6
![Page 4: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/4.jpg)
Вычисления по модулю Работа с остатками по модулю
Работа с остатками по модулю
Постановка задачи: нужно производить арифметические действия надцелыми числами по модулю m.
Лемма 1: (a± b) mod m = ((a mod m)± (b mod m)) mod m.Лемма 2: (a · b) mod m = ((a mod m) · (b mod m)) mod m.Для деления такое равенство неверно.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 3 / 6
![Page 5: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/5.jpg)
Вычисления по модулю Работа с остатками по модулю
Работа с остатками по модулю
Постановка задачи: нужно производить арифметические действия надцелыми числами по модулю m.
Лемма 1: (a± b) mod m = ((a mod m)± (b mod m)) mod m.Лемма 2: (a · b) mod m = ((a mod m) · (b mod m)) mod m.Для деления такое равенство неверно.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 3 / 6
![Page 6: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/6.jpg)
Вычисления по модулю Работа с остатками по модулю
Работа с остатками по модулю
Постановка задачи: нужно производить арифметические действия надцелыми числами по модулю m.
Лемма 1: (a± b) mod m = ((a mod m)± (b mod m)) mod m.Лемма 2: (a · b) mod m = ((a mod m) · (b mod m)) mod m.Для деления такое равенство неверно.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 3 / 6
![Page 7: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/7.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 8: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/8.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если числа порядка m2 помещаются в тип данных, можно простоприменить Лемму 1: (a · b) mod m = ((a mod m) · (b mod m)) mod m.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 9: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/9.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Вычислим a mod m, 2a mod m, 4a mod m, 8a mod m, . . ..Рассмотрим двоичную запись b и просуммируем нужныеслагаемые с предыдущего шага, после каждого сложениявычисляя остаток по модулю m.Пример: a = 13, b = 10, m = 21.b = 1010 = 10102 = 2+ 8(1 · a) mod m = 13(2 · a) mod m = (13+ 13) mod 21 = 26 mod 21 = 5(4 · a) mod m = (5+ 5) mod 21 = 10(8 · a) mod m = (10+ 10) mod 21 = 20Ответ: (((2 · a) mod m) + ((8 · a) mod m)) mod m =(5+ 20) mod m = 25 mod 21 = 4.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 10: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/10.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Вычислим a mod m, 2a mod m, 4a mod m, 8a mod m, . . ..Рассмотрим двоичную запись b и просуммируем нужныеслагаемые с предыдущего шага, после каждого сложениявычисляя остаток по модулю m.Пример: a = 13, b = 10, m = 21.b = 1010 = 10102 = 2+ 8(1 · a) mod m = 13(2 · a) mod m = (13+ 13) mod 21 = 26 mod 21 = 5(4 · a) mod m = (5+ 5) mod 21 = 10(8 · a) mod m = (10+ 10) mod 21 = 20Ответ: (((2 · a) mod m) + ((8 · a) mod m)) mod m =(5+ 20) mod m = 25 mod 21 = 4.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 11: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/11.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Вычислим a mod m, 2a mod m, 4a mod m, 8a mod m, . . ..Рассмотрим двоичную запись b и просуммируем нужныеслагаемые с предыдущего шага, после каждого сложениявычисляя остаток по модулю m.Пример: a = 13, b = 10, m = 21.b = 1010 = 10102 = 2+ 8(1 · a) mod m = 13(2 · a) mod m = (13+ 13) mod 21 = 26 mod 21 = 5(4 · a) mod m = (5+ 5) mod 21 = 10(8 · a) mod m = (10+ 10) mod 21 = 20Ответ: (((2 · a) mod m) + ((8 · a) mod m)) mod m =(5+ 20) mod m = 25 mod 21 = 4.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 12: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/12.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Вычислим a mod m, 2a mod m, 4a mod m, 8a mod m, . . ..Рассмотрим двоичную запись b и просуммируем нужныеслагаемые с предыдущего шага, после каждого сложениявычисляя остаток по модулю m.Пример: a = 13, b = 10, m = 21.b = 1010 = 10102 = 2+ 8(1 · a) mod m = 13(2 · a) mod m = (13+ 13) mod 21 = 26 mod 21 = 5(4 · a) mod m = (5+ 5) mod 21 = 10(8 · a) mod m = (10+ 10) mod 21 = 20Ответ: (((2 · a) mod m) + ((8 · a) mod m)) mod m =(5+ 20) mod m = 25 mod 21 = 4.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 13: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/13.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Пример: a = 13, b = 10, m = 21.b = 1010 = 10102 = 2+ 8(1 · a) mod m = 13(2 · a) mod m = (13+ 13) mod 21 = 26 mod 21 = 5(4 · a) mod m = (5+ 5) mod 21 = 10(8 · a) mod m = (10+ 10) mod 21 = 20Ответ: (((2 · a) mod m) + ((8 · a) mod m)) mod m =(5+ 20) mod m = 25 mod 21 = 4.Проверка: (13 · 10) mod 21 = 130 mod 21 = (126+ 4) mod 21 = 4.Заметим, что при вычислениях могут получиться только числа от0 до 2 ·m − 2.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 14: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/14.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Пример: a = 13, b = 10, m = 21.b = 1010 = 10102 = 2+ 8(1 · a) mod m = 13(2 · a) mod m = (13+ 13) mod 21 = 26 mod 21 = 5(4 · a) mod m = (5+ 5) mod 21 = 10(8 · a) mod m = (10+ 10) mod 21 = 20Ответ: (((2 · a) mod m) + ((8 · a) mod m)) mod m =(5+ 20) mod m = 25 mod 21 = 4.Проверка: (13 · 10) mod 21 = 130 mod 21 = (126+ 4) mod 21 = 4.Заметим, что при вычислениях могут получиться только числа от0 до 2 ·m − 2.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 15: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/15.jpg)
Вычисления по модулю «Медленное» умножение
«Медленное» умножение
Постановка задачи: вычисление (a · b) mod m.Если же число m2 слишком велико, можно произвести умножение«в столбик» в двоичной записи:
Вычислим a mod m, 2a mod m, 4a mod m, 8a mod m, . . ..Рассмотрим двоичную запись b и просуммируем нужныеслагаемые с предыдущего шага, после каждого сложениявычисляя остаток по модулю m.Время работы: log2 b сложений по модулю для вычисления(2k · a) mod m и не более log2 b сложений по модулю длясуммирования нужных слагаемых.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 4 / 6
![Page 16: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/16.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 17: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/17.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Вычислим a mod m, a2 mod m, a4 mod m, a8 mod m, . . ..Рассмотрим двоичную запись b и вычислим произведение нужныхмножителей с предыдущего шага, после каждого умножениявычисляя остаток по модулю m.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 18: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/18.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Вычислим a mod m, a2 mod m, a4 mod m, a8 mod m, . . ..Рассмотрим двоичную запись b и вычислим произведение нужныхмножителей с предыдущего шага, после каждого умножениявычисляя остаток по модулю m.Пример: a = 13, b = 5, m = 21.b = 510 = 1012 = 1+ 4a1 mod m = 13a2 mod m = (13 · 13) mod 21 = 169 mod 21 = 1a4 mod m = (1 · 1) mod 21 = 1Ответ: ((a1 mod m) · (a4 mod m)) mod m = (13 · 1) mod m = 13.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 19: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/19.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Вычислим a mod m, a2 mod m, a4 mod m, a8 mod m, . . ..Рассмотрим двоичную запись b и вычислим произведение нужныхмножителей с предыдущего шага, после каждого умножениявычисляя остаток по модулю m.Пример: a = 13, b = 5, m = 21.b = 510 = 1012 = 1+ 4a1 mod m = 13a2 mod m = (13 · 13) mod 21 = 169 mod 21 = 1a4 mod m = (1 · 1) mod 21 = 1Ответ: ((a1 mod m) · (a4 mod m)) mod m = (13 · 1) mod m = 13.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 20: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/20.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Вычислим a mod m, a2 mod m, a4 mod m, a8 mod m, . . ..Рассмотрим двоичную запись b и вычислим произведение нужныхмножителей с предыдущего шага, после каждого умножениявычисляя остаток по модулю m.Пример: a = 13, b = 5, m = 21.b = 510 = 1012 = 1+ 4a1 mod m = 13a2 mod m = (13 · 13) mod 21 = 169 mod 21 = 1a4 mod m = (1 · 1) mod 21 = 1Ответ: ((a1 mod m) · (a4 mod m)) mod m = (13 · 1) mod m = 13.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 21: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/21.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Пример: a = 13, b = 5, m = 21.b = 510 = 1012 = 1+ 4a1 mod m = 13a2 mod m = (13 · 13) mod 21 = 169 mod 21 = 1a4 mod m = (1 · 1) mod 21 = 1Ответ: ((a1 mod m) · (a4 mod m)) mod m = (13 · 1) mod m = 13.Проверка: (135) mod 21 = 371 293 mod 21 = 13.Заметим, что при вычислениях могут получиться только числа от0 до (m − 1)2.Если умножения по модулю реализовать при помощи«медленного» умножения, при вычислениях могут вновьполучиться только числа от 0 до 2 ·m − 2.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 22: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/22.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Пример: a = 13, b = 5, m = 21.b = 510 = 1012 = 1+ 4a1 mod m = 13a2 mod m = (13 · 13) mod 21 = 169 mod 21 = 1a4 mod m = (1 · 1) mod 21 = 1Ответ: ((a1 mod m) · (a4 mod m)) mod m = (13 · 1) mod m = 13.Проверка: (135) mod 21 = 371 293 mod 21 = 13.Заметим, что при вычислениях могут получиться только числа от0 до (m − 1)2.Если умножения по модулю реализовать при помощи«медленного» умножения, при вычислениях могут вновьполучиться только числа от 0 до 2 ·m − 2.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 23: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/23.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Пример: a = 13, b = 5, m = 21.b = 510 = 1012 = 1+ 4a1 mod m = 13a2 mod m = (13 · 13) mod 21 = 169 mod 21 = 1a4 mod m = (1 · 1) mod 21 = 1Ответ: ((a1 mod m) · (a4 mod m)) mod m = (13 · 1) mod m = 13.Проверка: (135) mod 21 = 371 293 mod 21 = 13.Заметим, что при вычислениях могут получиться только числа от0 до (m − 1)2.Если умножения по модулю реализовать при помощи«медленного» умножения, при вычислениях могут вновьполучиться только числа от 0 до 2 ·m − 2.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 24: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/24.jpg)
Вычисления по модулю «Быстрое» возведение в степень
«Быстрое» возведение в степень
Постановка задачи: вычисление ab mod m.Будем действовать аналогично: умножение можно представить какпоследовательность сложений, а возведение в степень — какпоследовательность умножений.
Вычислим a mod m, a2 mod m, a4 mod m, a8 mod m, . . ..Рассмотрим двоичную запись b и вычислим произведение нужныхмножителей с предыдущего шага, после каждого умножениявычисляя остаток по модулю m.Время работы: log2 b умножений по модулю для вычисленияa2k mod m и не более log2 b умножений по модулю дляперемножения нужных сомножителей.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 5 / 6
![Page 25: Алгебра и теория чисел - spbu.ruacm.math.spbu.ru/~gassa/slides/modular-arithmetic.ru.pdfАлгебра и теория чисел ИванКазменко Кружок](https://reader034.fdocument.pub/reader034/viewer/2022042911/5f44ad9418bb70491155d17a/html5/thumbnails/25.jpg)
Вычисления по модулю «Быстрое» возведение в степень
Всё.
Иван Казменко (Кружок при СПбГУ) Алгебра и теория чисел 04.10.2012 6 / 6