Главная страница
Навигация по странице:

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

  • Пример 2.9 Дано a = 161 и b = 28, надо найти НОД (a, b) и значения s и t.Решение

  • Пример 2.10 Дано a = 17 и b = 0, найти НОД (a, b) и значения s и t.Решение

  • алгоритм Евклида. Расширенный алгоритм Евклида (1). Расширенный алгоритм Евклида


    Скачать 51.11 Kb.
    НазваниеРасширенный алгоритм Евклида
    Анкоралгоритм Евклида
    Дата01.11.2022
    Размер51.11 Kb.
    Формат файлаdocx
    Имя файлаРасширенный алгоритм Евклида (1).docx
    ТипРешение
    #765629

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

    Даны два целых числа 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

    Для отображения алгоритма мы используем следующую таблицу:



    q

    r1

    r2

    R

    s1

    s2

    s

    t1

    t2

    t

    5

    161

    28

    21

    1

    0

    1

    0

    1

    -5

    1

    28

    21

    7

    0

    1

    -1

    1

    -5

    6

    3

    21

    7

    0

    1

    -1

    4

    -5

    6

    -23




    7

    0




    -1

    4




    6

    -23




    Мы получаем НОД (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

    r1

    r2

    R

    s1

    s2

    s

    t1

    t2

    t




    17

    0




    1

    0




    0

    1




    Обратите внимание, что нам не надо вычислять 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.

    Решение

    Для отображения алгоритма мы используем следующую таблицу:

    q

    r1

    r2

    R

    s1

    s2

    s

    t1

    t2

    t

    0

    0

    45

    0

    1

    0

    1

    0

    1

    0




    45

    0




    0

    1




    0

    1




    Мы получаем НОД (0,45) = 45, s = 0 и t = 1. Отсюда ясно, что мы должны инициализировать s2 равным 0, а t2 — равным 1. Ответ может быть проверен, как это показано ниже:

    (0 x 0) + (1 x 45) = 45


    написать администратору сайта