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

  • Алгори́тм Евкли́да

  • 2. Алгоритм Евклида для целых чисел

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

  • 4.1. Связь с цепными дробями

  • 5.1. Обобщённый алгоритм Евклида для многочленов

  • 5.2. Ускоренные версии алгоритма

  • Реферат на тему Евклида. Реферат на тему. Литература Алгоритм Евклида алгоритм для нахождения наибольшего общего делителя двух целых чисел или наибольшей общей меры двух однородных величин.


    Скачать 44.21 Kb.
    НазваниеЛитература Алгоритм Евклида алгоритм для нахождения наибольшего общего делителя двух целых чисел или наибольшей общей меры двух однородных величин.
    АнкорРеферат на тему Евклида
    Дата21.11.2022
    Размер44.21 Kb.
    Формат файлаdocx
    Имя файлаРеферат на тему.docx
    ТипЛитература
    #804089


    Введение

    1 История…………………………………………………………………………3

    • 2 Алгоритм Евклида для целых чисел………………………………………4

    • 3 Пример………………………………………………………………………5

    • 4 Расширенный алгоритм Евклида и соотношение Безу…………………...6

      • 4.1 Связь с цепными дробями………………………………………....7

    • 5 Вариации и обобщения……………………………………………………..8

      • 5.1 Обобщённый алгоритм Евклида для многочленов………………9

      • 5.2 Ускоренные версии алгоритма……………………………………11

    Литература

    Алгори́тм Евкли́да — алгоритм для нахождения наибольшего общего делителя двух целых чисел или наибольшей общей меры двух однородных величин.

    1. История

    Древнегреческие математики называли этот алгоритм ἀνθυφαίρεσις или ἀνταναίρεσις — «взаимное вычитание». Этот алгоритм не был открыт Евклидом, так как упоминание о нём имеется уже в Топике Аристотеля. В «Началах» Евклида он описан дважды — в VII книге для нахождения наибольшего общего делителя двух натуральных чисел и в X книге для нахождения наибольшей общей меры двух однородных величин. В обоих случаях дано геометрическое описание алгоритма, для нахождения «общей меры» двух отрезков.

    Историками математики (Цейтен и др.) было выдвинуто предположение, что именно с помощью алгоритма Евклида (процедуры последовательного взаимного вычитания) в древнегреческой математике впервые было открыто существование несоизмеримых величин (стороны и диагонали квадрата, или стороны и диагонали правильного пятиугольника). Впрочем, это предположение не имеет достаточных документальных подтверждений. Алгоритм для поиска наибольшего общего делителя двух натуральных чисел описан также в I книге древнекитайского трактата Математика в девяти книгах.

    Ряд математиков средневекового Востока (Сабит ибн Курра, ал-Махани, Ибн ал-Хайсам, Омар Хайям) попытались построить на основе алгоритма Евклида теорию отношений, альтернативную по отношению теории отношений Евдокса, изложенной в V книге «Начал» Евклида. Согласно определению, предложенному этими авторами, четыре величины, первая ко второй и третья к четвёртой, имеют между собой одно и то же отношение, если при последовательном взаимном вычитании второй величины в обеих парах на каждом шаге будут получаться одни и те же неполные частные.

    2. Алгоритм Евклида для целых чисел

    Пусть a и b — целые числа, не равные одновременно нулю, и последовательность чисел



    определена тем, что каждое rk — это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть

    a = bq0 + r1

    b = r1q1 + r2

    r1 = r2q2 + r3



    rk − 2 = rk − 1qk − 1 + rk



    rn − 1 = rnqn

    Тогда НОД(a,b), наибольший общий делитель a и b, равен rn, последнему ненулевому члену этой последовательности.

    Существование таких r1,r2,..., то есть возможность деления с остатком m на n для любого целого m и целого  , доказывается индукцией по m.

    Корректность этого алгоритма вытекает из следующих двух утверждений:

    • Пусть a = bq + r, тогда НОД (a,b) = НОД (b,r).

    Доказательство  

    1. Пусть k — любой общий делитель чисел a и b, не обязательно максимальный, тогда a = t1 * k ; b = t2 * k; где t1 и t2 — целые числа из определения.

    2. Тогда k также общий делитель чисел b и r, так как b делится на k по определению, а r = a − bq = (t1 − t2 * q) * k (выражение в скобках есть целое число, следовательно, k делит r без остатка)

    3. Обратное также верно и доказывается аналогично пункту 2 - любой делитель b и r так же является делителем a и b.

    4. Следовательно, все общие делители пар чисел a,b и b,r совпадают. Другими словами, нет общего делителя у чисел a,b, который не был бы также делителем b,r, и наоборот.

    5. В частности, максимальный делитель остается тем же самым. Что и требовалось доказать.

    • НОД (0,r) = r для любого ненулевого r.

    Проще сформулировать алгоритм Евклида так: если даны натуральные числа a и b и, пока получается положительное число, по очереди вычитать из большего меньшее, то в результате получится НОД.

    3. Пример

    Для иллюстрации, алгоритм Евклида будет использован, чтобы найти НОД a = 1071 и b = 462. Для начала, от 1071 отнимем кратное значение 462, пока не получим знаменатель меньше чем 462. Мы должны дважды отнять 462, (q0 = 2), оставаясь с остатком 147

    1071 = 2 × 462 + 147.

    Затем от 462 отнимем кратное значение 147, пока не получим знаменатель меньше чем 147. Мы должны трижды отнять 147 (q1 = 3), оставаясь с остатком 21.

    462 = 3 × 147 + 21.

    Затем от 147 отнимем кратное значение 21, пока не получим знаменатель меньше чем 21. Мы должны семь раз отнять 21 (q2 = 7), оставаясь без остатка.

    147 = 7 × 21 + 0.

    Так как последний остаток равен нулю, алгоритм заканчивается и НОД(1071, 462)=21.

    В табличной форме, шаги были следующие

    Шаг k

    Равенство

    Частное и остаток

    0

    1071 = q0 462 + r0

    q0 = 2 и r0 = 147

    1

    462 = q1 147 + r1

    q1 = 3 и r1 = 21

    2

    147 = q2 21 + r2

    q2 = 7 и r2 = 0; алгоритм заканчивается

    4. Расширенный алгоритм Евклида и соотношение Безу

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

    r1 = a + b( - q0)

    r2 = b − r1q1 = a( − q1) + b(1 + q1q0)



    НОД (a,b) = rn = as + bt

    здесь s и t целые. Это представление наибольшего общего делителя называется соотношением Безу, а числа s и t — коэффициентами Безу. Соотношение Безу является ключевым в доказательстве леммы Евклида и основной теоремы арифметики.

    4.1. Связь с цепными дробями

    Отношение a / b допускает представление в виде цепной дроби:

    .

    При этом цепная дробь без последнего члена равна отношению коэффициентов Безу t / s, взятому со знаком минус:

    .

    Последовательность равенств, задающая алгоритм Евклида может быть переписана в форме



    Последнее слагаемое в правой части равенства всегда равно обратному значению левой части следующего уравнения. Поэтому первые два уравнения могут быть объедены в форме



    Третье равенство может быть использовано чтобы заменить знаменатель выражения r1/r0, получим



    Последнее отношение остатков rk/rk−1 всегда может быть заменено используя следующее равенство в последовательности, и так до последнего уравнения. Результатом является цепная дробь



    В приведённом выше примере, НОД(1071, 462) было посчитано и были найдены частные qk 2,3 и 7 соответственно. Поэтому, 1071/462 может быть записана как



    5. Вариации и обобщения

    • Кольца, в которых применим алгоритм Евклида, называются евклидовыми кольцами. К ним относятся, в частности, кольца многочленов.

    5.1. Обобщённый алгоритм Евклида для многочленов

    Алгоритм Евклида и расширенный алгоритм Евклида естественным образом обобщается на кольцо многочленов k[x] от одной переменной над произвольным полем k, и в частности над полем целых чисел (обозначим это кольцо Z[x]), поскольку для таких многочленов определена операция деления с остатком. При выполнении алгоритма Евклида для многочленов аналогично алгоритму Евклида для целых чисел, получается последовательность полиномиальных остатков (PRS).

    Пусть cont(f) по определению — НОД коэффициентов многочлена f(x) из Z[x] — содержание многочлена. Частное от деления f(x) на cont(f) называется примитивной частью многочлена f(x) и обозначается primpart(f(x)).

    эти определения понадобятся для нахождения НОД двух многочленов p1(x) и p2(x) в кольце Z[x]. Для многочленов над целыми числами верно следующее:

    cont(НОД{p1(x),p2(x)}) = НОД{cont(p1(x)),con(p2(x))}, primpart(НОД{p1(x),p2(x)}) = НОД{primpart(p1(x)),primpart(p2(x))}.

    Таким образом задача отыскания НОД двух произвольных многочленов сводится к задаче отыскания НОД примитивных полиномов.

    Пусть есть два примитивных многочлена p1(x) и p2(x) из Z[x], для которых выполняется соотношение между их степенями: deg(p1(x)) = m и deg(p2(x)) = n, m > n. Деление многочленов с остатком предполагает точную делимость старшего коэффициента делимого на старший коэффициент делителя, в общем случае деление с остатком выполнить невозможно. Поэтому вводят алгоритм псевдоделения, который всё же позволяет получить псевдочастное и псевдоостаток (prem), которые будут сами по себе принадлежать множеству многочленов над целыми числами.

    Под псевдоделением будем понимать, что самому делению предшествует умножение полинома p1(x) на (lc(p2(x)))m − n + 1, то есть lc(p2(x))m − n + 1p1(x) = p2(x)q(x) + r2(x), deg(r(x)) < deg(p2(x)), где q(x) и r(x) — соответственно псевдочастное и псевдоостаток.

    Итак,   — (принадлежат кольцу многочленов над целыми числами), причём  . Тогда алгоритм Евклида состоит из следующих шагов:

    1. Вычисление НОД содержаний:

    c: = НОД{cont(p1),cont(p2)}.

    2. Вычисление примитивных частей:

    p1'(x): = cont(p1(x)); p2'(x): = cont(p2(x)).

    3. Построение последовательности полиномиальных остатков:

    p1'(x),

    p2'(x),

    p3(x): = prem(p1'(x),p2'(x)),

    p4(x): = prem(p2'(x),p3(x)),

    p5(x): = prem(p3(x),p4(x)),

    ...,

    ph(x): = prem(ph − 2(x),ph − 1(x)).

    4. Выход и возврат результата:

    Если deg(ph(x)) = 0, то вернуть c, иначе вернуть  .

    5.2. Ускоренные версии алгоритма

    • Одним из методов ускорения целочисленного алгоритма Евклида является использование симметричного остатка:



    где



    • Одна из наиболее многообещающих версий ускоренного алгоритма Евклида для полиномов основывается на том, что промежуточные значения алгоритма в основном зависят от высоких степеней. Применение стратегии Разделяй и Властвуй позволяет уменьшить асимптотическую сложность алгоритма.


    Литература

    • Виноградов И. М. Основы теории чисел.

    • Курант Р., Роббинс Г. Дополнение к главе I, § 4. // Что такое математика?. — 3-e изд., испр. и доп.. — М., 2001. — 568 с.

    • Абрамов С. Самый знаменитый алгоритм // Квант. — 1985. — № 11. — С. 44—46.

    • Щетников А. И. Алгоритм Евклида и непрерывные дроби. Новосибирск: АНТ, 2003.

    • Fowler D. H. The Mathematics of Plato’s Academy: a new reconstruction. 2nd ed. Oxford: Clarendon Press, 1999.

    • von zur Gathen J., Gerhard J. Modern Computer Algebra. ISBN 0-521-82646-2

    • Панкратьев Е. В. Наибольший общий делитель и последовательности полиномиальных остатков // intuit.ru.


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