алгоритм Евклида. Расширенный алгоритм Евклида (1). Расширенный алгоритм Евклида
Скачать 51.11 Kb.
|
Расширенный алгоритм Евклида Даны два целых числа a и b. Нам зачастую надо найти другие два целых числа, s и t, такие, которые s x a + t x b = НОД(a,b) Расширенный алгоритм Евклида может вычислить НОД (a, b) и в то же самое время вычислить значения s и t. Алгоритм и процесс такого вычисления показан на рис. 2.8. Здесь расширенный алгоритм Евклида использует те же самые шаги, что и простой алгоритм Евклида. Однако в каждом шаге мы применяем три группы вычислений вместо одной. Алгоритм использует три набора переменных: r, s и t. увеличить изображение Рис. 2.8. Расширенный алгоритм Евклида На каждом шаге переменные r1, r2 и r используются так же, как в алгоритме Евклида. Переменным r1 и r2присваиваются начальные значения a и b соответственно. Переменным s1 и s2 присваиваются начальные значения 1 и 0соответственно. Переменным t1 и t2 присваиваются начальные значения 0 и 1, соответственно. Вычисления r, s и tодинаковы, но с одним отличием. Хотя r — остаток от деления r1 на r2, такого соответствия в других двух группах вычислений нет. Есть только одно частное, q, которое вычисляется как r1/r2 и используется для других двух вычислений. Пример 2.9 Дано a = 161 и b = 28, надо найти НОД (a, b) и значения s и t. Решение r = r1 – q x r2 s = s1 – qs2 t = t1 – q x t2 Для отображения алгоритма мы используем следующую таблицу:
Мы получаем НОД (161, 28) = 7, s = –1 и t = 6. Ответы могут быть проверены, как это показано ниже. (–1) x 161 + 6 x 28 = 7 Пример 2.10 Дано a = 17 и b = 0, найти НОД (a, b) и значения s и t. Решение Для отображения алгоритма мы используем таблицу.
Обратите внимание, что нам не надо вычислять q, r и s. Первое значение r2 соответствует условию завершения алгоритма. Мы получаем НОД (17, 0) = 17, s = 1 и t = 0. Это показывает, почему мы должны придавать начальные значения s1 — 1 и t1 — 0. Ответы могут быть проверены так, как это показано ниже: (1 x 17) + (0 x 0) = 17 Пример 2.11 Даны a = 0 и b = 45, найти НОД (a, b) и значения s и t. Решение Для отображения алгоритма мы используем следующую таблицу:
Мы получаем НОД (0,45) = 45, s = 0 и t = 1. Отсюда ясно, что мы должны инициализировать s2 равным 0, а t2 — равным 1. Ответ может быть проверен, как это показано ниже: (0 x 0) + (1 x 45) = 45 |