КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Для решения более сложных сравнений
Расширенный алгоритм Евклида Основные способы нахождения обратных величин Существуют три основных способа нахождения обратных величин а –1 ≡ х (mod n).
1. Проверить поочередно значения 1, 2, …, n – 1, пока не будет найден а – 1 º 1 (mod n), такой, что а • а –1 (mod n) º 1. 2. Если известна функция Эйлера j(n), то можно вычислить а –1 (mod n) ºа j(n) – 1 (mod n), используя алгоритм быстрого возведения в степень. 3. Если функция Эйлера j(n) не известна, можно использовать расширенный алгоритм Евклида.
Примеры. 1. Поочередная проверка значений 1, 2, …, n – 1, пока не будет найден х = а – 1 (mod n), такой, что а • х º 1 (mod n). Пусть n = 7, a = 5. Найти х = а – 1 (mod n). а • х º 1 (mod n) или 5 • х º 1 n – 1 = 7 – 1 = 6. Получаем х = 5 – 1 (mod 7) = 3. Результаты проверки приведены в таблице 5.2. Таблица 5.2 – Нахождение обратной величины первым способом
2. Нахождение а –1 (mod n), если известна функция Эйлера j(n). Пусть n = 7, a = 5. Найти х = а – 1 (mod n) = 5 –1 (mod 7). Модуль n = 7 – простое число. Поэтому функция Эйлера j(n) = j(7) = n – 1 = 6. Обратная величина от5 по mod 7: а –1 (mod n) =а j(n) – 1 (mod n) = 5 6 – 1 mod 7 = 5 5 mod 7 = = (5 2 mod 7) (5 3 mod 7) mod 7 = (25 mod 7) (125 mod 7) mod 7 = = (4 • 6) mod 7 = 24 mod 7 = 3. Итак, х = 5 –1 (mod 7) = 3.
3. Нахождение обратной величины а –1 (mod n) с помощью расширенного алгоритма Евклида. Алгоритм Евклида можно обобщить способом, который имеет большое практическое значение. При этом способе во время вычисления НОД (а, b) можно попутно вычислить такие целые числа u1 и u2, что а • u1 + b • u2 = НОД (а, b).
Это обобщение (расширение) алгоритма Евклида удобно описать, используя векторные обозначения. При заданных неотрицательных целых числах а и b этот алгоритм определяет вектор (u1, u2, u3), такой, что а • u1 + b • u2 = u3 = НОД (а, b). В процессе вычисления используются вспомогательные векторы (v1, v2, v3), (t1, t2, t3). Действия с векторами производятся таким образом, что в течение всего процесса вычисления выполняются соотношения а • t1 + b • t2 = t3, а • u1 + b • u2 = u3, а • v1 + b • v2 = v3. Для вычисления обратной величины а –1 (mod n) используется частный режим работы расширенного алгоритма Евклида, при котором: b = n, НОД (а, n) = 1, и этот алгоритм определяет вектор (u1, u2, u3), такой, что u3 = 1, а • u1 + n • u2 = НОД (а, n) = 1, (а • u1 + n • u2) mod n º а • u1 (mod n) º 1, а –1 (mod n) º u1 (mod n). Шаги алгоритма: 1. Начальная установка. Установить (u1, u2, u3): = (0, 1, n), (v1, v2, v3): = (1, 0, a).
2. u3 = 1?. Если u3 = 1, то алгоритм останавливается. 3. Разделить, вычесть. Установить q: = [u3 / v3]. Затем установить (t1, t2, t3): = (u1, u2, u3) – (v1, v2, v3) • q, (u1, u2, u3): = (v1, v2, v3), (v1, v2, v3): = (t1, t2, t3). Возвратиться к шагу 2. Пример. Даны модуль n = 23 и число а = 5. Найти обратное число а –1 (mod 23), т.е. х = 5 –1 (mod 23). Используя расширенный алгоритм Евклида, выполним вычисления, записывая результаты отдельных шагов в таблицу 1.5.1. Таблица 5.3 – Шаги выполнения алгоритма Евклида
При u3 = 1, u1 = - 9, u2 = 2. (а • u1 + n • u2) mod n = (5 • (- 9) + 23 • 2) mod 23 = 5 • (- 9) mod 23 º 1, а –1 (mod n) = 5 –1 (mod 23) = (- 9) (mod 23) = (- 9 + 23) (mod 23) = 14. Таким образом, х = 5 –1 (mod 23) º 14 (mod 23) = 14.
а • х º b (mod n), т.е. b ¹ 1, x =? используется следующий прием. Сначала решают сравнение а • y º 1 (mod n),
т.е. определяют y = a –1 (mod n), а затем находят x = a –1 • b (mod n) = y • b (mod n). { Пример. Найти х для сравнения 5 • х º 9 (mod 23). Сначала решаем сравнение 5 • y º 1 (mod 23). Получаем y = 5 –1 (mod 23) = 14. Затем находим x = 5 –1 • 9 (mod 23) = 14 • 9 (mod 23) = 126 (mod 23) º 11 (mod 23). x = 11. }
Дата добавления: 2014-01-06; Просмотров: 448; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |