МАЛЫЙ МЕХМАТ МГУ | ||||
Кружок 9-11 классовРуководители А. С. Воропаев, П. С. Дергач, Ф. И. Мамедова и Ю. А. Цимбалов
2011/2012 учебный год Теория чисел — 3Алгоритм ЕвклидаЕсли числа n и m имеют одинаковый остаток от деления на k, их называют сравнимыми по модулю k. Записывается это так: n ≡ m (mod k). В прошлом листочке разссказывалось про такое свойство: если a1 ≡ a2 (mod k) и b1 ≡ b2 (mod k), то и a1 + b1 ≡ a2 + b2 (mod k), a1 · b1 ≡ a2 · b2 (mod k). Это позволяет, например, проделывать такое: если мы рассматриваем сравнение по модулю 7, то 13³· 8 + 702² ≡ ( − 1)³· 1 + 2² ≡ 3 (mod 7).
Наибольший общий делитель чисел a и b традиционно обозначают НОД(a,b), если ещё короче, то просто (a,b). НОД бывает полезен очень много где, но прежде чем говорить о применениях, поговорим о том, как его находить. Просто перебирать все делители или раскладывать числа на множители при больших a и b слишком долго. Гораздо более быстрый способ — алгоритм Евклида. Он основан на том, что НОД(a,b) = НОД(a − b,b).
Алгоритм Евклида работает так: на каждом шаге от пары чисел a > b мы переходим к паре a − b и b, то есть от большего числа отнимаем меньшее. Продолжим этот процесс. Так как числа никогда не будут отрицательными, и всегда будут натуральными, то процесс не может продолжаться вечно. А когда он остановится? А только тогда, когда числа в паре станут одинаковыми. Когда это произойдёт, найти их НОД уже не будет составлять никакого труда. Пример 1. НОД(511,292) = НОД(219,292) = НОД(219,73) = НОД(146,73) = НОД(73,73) = 73 Ещё более упростить процесс помогает такое соображение: когда несколько раз вычитаем из большего числа меньшее: a − b, a − 2b, a − 3b, то остановимся мы тогда, когда число из большего наконец станет меньшим, например так: a − 4b < b. Но тогда a = (a − 4b) + 4b, то есть a − 4b это остаток от деления a на b. Так что можно было не расписывать все a − b, a − 2b и тд, а сразу заменить a на остаток от деления a на b. Часто это оказывается быстрее, чем много раз вычитать. Пример 2. (413523,1443) = (825,1443) = (825,618) = (207,618) = (207,204) = (3,204) = 3
|