Алгоритм является удостоверяющим[англ.], то есть помимо решения задачи приводит также доказательство корректности этого решения. Это связано с тем, что НОД является единственным числом, которое одновременно удовлетворяет уравнению и делит входные числа. Алгоритм позволяет также почти без дополнительных затрат вычислять частные от деления и на их наибольший общий делитель.
Под расширенным алгоритмом Евклида также понимается очень похожий алгоритм[англ.] для вычисления наибольшего общего делителя многочленов и вычисления коэффициентов соотношения Безу двух многочленов от одной переменной.
Стандартный алгоритм Евклида выполняется путём последовательных делений с остатком, при этом частное не используется, и сохраняется только остаток. В расширенном алгоритме используются и частные от деления. Точнее, стандартный алгоритм Евклида для чисел и в качестве исходных данных состоит из вычисления последовательности частных и последовательности остатков, таких что:
Одним из свойств деления с остатком является то, что неравенство справа определяет единственность и для и .
Вычисление останавливается, когда достигaет нулевого остатка . Наибольший общий делитель тогда равен последнему ненулевому остатку .
Расширенный алгоритм Евклида вычисляет последовательности и аналогично, но добавляет ещё две последовательности и , вычисляемые следующим образом:
Вычисление останавливается, когда . В итоге получаются искомые величины:
равен наибольшему общему делителю входных значений и .
Частные от деления и на их наибольший общий делитель задаются величинами и .
Более того, если оба числа и положительны и , то
для , где означает целую часть числа , то есть, наибольшее целое, не превосходящее .
Отсюда вытекает, что пара коэффициентов Безу, которую даёт расширенный алгоритм Евклида, является минимальной паройкоэффициентов Безу, поскольку она является единственной парой, удовлетворяющей обоим неравенствам выше.
Также из этого следует, что алгоритм может быть выполнен без риска целочисленного переполненияпрограммой, использующей целые числа фиксированного размера, который превосходит размер обоих чисел и .
Пример
Следующая таблица показывает, как расширенный алгоритм Евклида работает с входными числами 240 и 46. Наибольший общий делитель — последний ненулевой элемент, 2 в столбце «остаток». Вычисление завершается на строке 6, поскольку остаток в ней равен 0. Коэффициенты Безу появляются в двух последних ячейках предпоследней строки. Легко проверить, что −9 × 240 + 47 × 46 = 2. Наконец, два последних значения 23 и −120 последней строки, с точностью до знака, являются частными от деления входных значений 46 и 240 на наибольший общий делитель 2.
индекс i
частное qi−1
остаток ri
si
ti
0
240
1
0
1
46
0
1
2
240 ÷ 46 = 5
240 − 5 × 46 = 10
1 − 5 × 0 = 1
0 − 5 × 1 = −5
3
46 ÷ 10 = 4
46 − 4 × 10 = 6
0 − 4 × 1 = −4
1 − 4 × −5 = 21
4
10 ÷ 6 = 1
10 − 1 × 6 = 4
1 − 1 × −4 = 5
−5 − 1 × 21 = −26
5
6 ÷ 4 = 1
6 − 1 × 4 = 2
−4 − 1 × 5 = −9
21 − 1 × −26 = 47
6
4 ÷ 2 = 2
4 − 2 × 2 = 0
5 − 2 × −9 = 23
−26 − 2 × 47 = −120
Доказательство
Поскольку последовательность является строго убывающей последовательностью неотрицательных целых (начиная с i = 2). Тогда алгоритм должен остановиться на некотором Это доказывает, что алгоритм когда-нибудь завершится.
Поскольку наибольшие общие делители пар и одинаковы. По индукции можно показать, что наибольший общий делитель входных будет тем же самым, что и для , и таким образом доказать, что является наибольшим общим делителем a и b. (До этого момента доказательство то же самое, что и для классического алгоритма Евклида.)
Поскольку и , при i = 0 и 1 . Далее отношение доказывается по индукции для всех :
Тогда и являются коэффициентами Безу.
Рекуррентные соотношения можно переписать в матричном виде:
Матрица является единичной матрицей и её определитель равен единице. Определитель самой правой матрицы здесь равен −1. Отсюда следует, что определитель равен В частности, для определитель равен Если рассматривать это как соотношение Безу, получится, что и взаимно просты. Соотношение , доказанное выше, и лемма Евклида показывают, что делит b, то есть для некоторого целого d. При делении на соотношения получается Таким образом, и являются взаимно простыми целыми, которые являются частными от деления a и b на общий делитель, который является их наибольшим общим делителем или ему противоположным.
Последнее утверждение может быть доказано следующим образом: пусть a и b положительны и . Тогда , и если , то последовательности s и t для (a,b) в расширенном алгоритме являются, с точностью до начальных нулей и единиц, последовательностями t и s для (b,a). Определения затем показывают, что случай (a,b) сводится к случаю (b,a). Таким образом, без потери общности, можно предположить, что .
равно 1, а (которое существует ввиду ) отрицательно. Таким образом, меняет знак и строго возрастает по абсолютной величине, что следует по индукции из определения и факта, что для . Случай для выполняется, поскольку . То же самое верно для после нескольких первых членов по тем же причинам. Более того, (если a и b положительны и ). Тогда:
Это, и тот факт, что не меньше по абсолютному значению любого предыдущего или соответственно, завершает доказательство.
Для многочленов от одной переменной с коэффициентами в поле всё работает аналогичным образом, включая деление Евклида, соотношение Безу и расширенный алгоритм Евклида. Первое отличие в том, что в делении Евклида и в алгоритме неравенство следует заменить на неравенство степеней Остальное остаётся тем же самым, просто заменяем целые числа многочленами.
Второе отличие лежит в границах размера коэффициентов Безу, даваемых расширенным алгоритмом Евклида, которые более точны в случае многочленов, что приводит к следующей теореме.
Если a и b два ненулевых многочлена, расширенный алгоритм Евклида даёт единственную пару многочленов (s, t), таких что
и
Третье отличие в том, что для многочленов наибольший общий делитель определён с точностью до умножения на ненулевую константу. Есть несколько путей определить наибольший общий делитель однозначно.
В математике обычно требуют, чтобы наибольший общий делитель был приведённым многочленом. Чтобы этого достичь, достаточно разделить все элементы результата на ведущий коэффициент Это позволяет, если a и b взаимно простые, получить 1 в правой части неравенства Безу. В противном случае получим ненулевую константу. В компьютерной алгебре многочлены обычно имеют целые коэффициенты и этот способ нормализации наибольшего общего делителя приводит к большому числу дробей.
Другим способом нормализации наибольшего общего делителя для случая целых коэффициентов является деление выходного многочлена на НОД коэффициентов многочлена , чтобы получить примитивный наибольший общий делитель. Если входные многочлены взаимно просты, нормализация даёт наибольший общий делитель, равный 1. Недостатком этого подхода является большое количество дробей, которые должны быть вычислены и упрощены.
Третий подход заключается в расширении алгоритма вычисления промежуточных последовательностей псевдоостатков[англ.] (подрезультантов) аналогично расширению алгоритма Евклида до расширенного алгоритма Евклида. Это позволяет, начав с многочлена с целыми коэффициентами, получать в процессе вычислений многочлены с целыми коэффициентами. Более того, каждый вычисленный остаток остаётся подрезультантом. В частности, если многочлены взаимно просты, то соотношение Безу превращается в
где означает результант для a и b. В таком виде соотношения Безу нет в формуле знаменателя. Если разделить всё на результант, получим классическое соотношение Безу с явным общим знаменателем для рациональных чисел которые при этом появляются.
Псевдокод
В этой и следующей секциях div является вспомогательной функцией, вычисляющей частное от деления с остатком её левого аргумент на правый аргумент.
Для реализации вышеописанного алгоритма следует заметить, что только два последних значения индексированных переменных нужны на каждом шаге. Таким образом, для экономии памяти, каждая индексированная переменная должна быть заменена просто двумя переменными.
Для простоты следующий алгоритм (и другие алгоритмы в этой статье) используют параллельные присваивания. В языках программирования, не поддерживающих данную возможность параллельное присвоение необходимо осуществлять с использованием дополнительной переменной. Например, первое присвоение
и аналогично для других параллельных присвоений. Это приводит к следующему коду:
function extended_gcd(a, b)
(old_r, r) := (a, b)
(old_s, s) := (1, 0)
(old_t, t) := (0, 1)
while r ≠ 0 do
quotient := old_r div r
(old_r, r) := (r, old_r − quotient × r)
(old_s, s) := (s, old_s − quotient × s)
(old_t, t) := (t, old_t − quotient × t)
output "коэффициенты Безу:", (old_s, old_t)
output "наибольший общий делитель:", old_r
output "частные от деления на НОД:", (t, s)
Частные от деления a и b на их наибольший общий делитель, который тоже есть в выводе, могут иметь неверный знак. Это легко исправить в конце вычислений, но не сделано здесь для упрощения кода. Аналогично, если a или b равно нулю, а второе число отрицательно, наибольший общий делитель в выводе отрицателен, так что все знаки в выводе нужно изменить.
Наконец заметим, что соотношение Безу мoжно решить относительно при заданных . Тогда оптимизацией для алгоритма выше будет вычислять только последовательность (которая приводит к коэффициенту Безу ), а значение вычислить в конце алгоритма:
function extended_gcd(a, b)
s := 0; old_s := 1
r := b; old_r := a
while r ≠ 0 do
quotient := old_r div r
(old_r, r) := (r, old_r − quotient × r)
(old_s, s) := (s, old_s − quotient × s)
if b ≠ 0 then
bezout_t := (old_r − old_s × a) div b
else
bezout_t := 0
output "коэффициенты Безу:", (old_s, bezout_t)
output "наибольший общий делитель:", old_r
Однако, во многих случаях это не будет реальной оптимизацией — прежний алгоритм нечувствителен к переполнению при использовании целых чисел в машине (то есть целых чисел с фиксированной верхней границей представления), умножение old_s * a при вычислении bezout_t может вызвать переполнение, что ограничивает оптимизацию только на входные данные, которые не превосходят половины максимального размера целых чисел. Если используются целые числа неограниченного размера, время, необходимое для умножения и деления растёт квадратично от размера целых чисел. Из этого следует, что «оптимизация» заменяет последовательность умножений/делений малых чисел на одно умножение/деление, которое требует большего времени выполнения, чем операции, которые оно заменяет, взятые вместе.
Упрощение деления
Деление a/b находится в канонической упрощённой форме, если a и bвзаимно просты и b положительно. Эта каноническая упрощённая форма может быть получена путём замены трёх строк вывода на псеводокод
ifs = 0then output "Деление на ноль"
ifs < 0thens := −s; t := −t (во избежание нулевых делителей)
ifs = 1then output-t (во избежание делителей, равных 1)
output-t/s
Доказательство этого алгоритма полагается на факт, что s и t являются двумя взаимно простыми целыми, такими что , а тогда . Для получения канонически упрощённой формы достаточно изменить знак для получения положительного делителя.
Если b делит a нацело, алгоритм выполняет только одну итерацию, и мы имеем s = 1 в конце алгоритма. Это единственный случай, когда вывод является целым числом.
Если n является положительным целым, кольцо Z/nZ может быть отождествлено со множеством {0, 1, ..., n-1} остатков от деления с остатком на n, сложение и умножение заключается во взятии остатка от деления на n результатов сложения и умножения целых чисел. Элемент aZ/nZ имеет обратный элемент (то есть элемент обратимый), если он взаимно прост с n. В частности, если n является простым, a имеет обратное, если оно не нулевое (по модулю n). То есть, Z/nZ будет полем тогда и только тогда, когда n просто.
Соотношение Безу утверждает, что a и n взаимно просты тогда и только тогда, когда существуют целые sи t, такие что
Сравнение по модулю n даёт
Тогда t, или точнее, остаток от деления t на n, равен обратному числу a по модулю n.
Чтобы приспособить расширенный алгоритм Евклида для этой задачи, следует заметить, что коэффициент Безу при n не нужен, а потому нет необходимости его и вычислять. Также, для получения результата в виде положительного числа, меньшего n, можно использовать факт что целое t, предоставляемое алгоритмом, удовлетворяет соотношению . То есть, если , можно добавить n в конце. Это приводит к псевдокоду, в котором входное значение n является целым, большим 1.
function inverse(a, n)
t := 0; newt := 1
r := n; newr := a
while newr ≠ 0 do
quotient := r div newr
(t, newt) := (newt, t − quotient × newt)
(r, newr) := (newr, r − quotient × newr)
if r > 1 thenreturn "не обратимо"
if t < 0 then
t := t + n
return t
Алгебраическое расширение L поля K, генерируемое корнем неприводимого многочлена p степени d можно отождествить с факторкольцом, а его элементы находятся в биективном соотношении с многочленами степени, меньшей d.Сложениев L есть сложение многочленов. Умножение в L есть остаток от деления с остатком[англ.]на p произведения многочленов. Таким образом, для завершения арифметики в L остаётся только определить, каким образом вычислять обратные элементы. Делается это с расширенным алгоритмом Евклида.
Алгоритм очень похож на приведённый выше для вычисления модульного обратного. Есть два главных отличия — во-первых, предпоследняя строка не нужна, поскольку получаемые коэффициенты Безу имеют всегда степень меньшую, чем d. Во-вторых, Наибольший общий делитель, который получается, если входные данные являются взаимно простыми многочленами, может быть любым ненулевым элементом K. Этот коэффициент Безу (многочлен обычно имеет положительную степень), следует умножить на обратный этому элементу в K. В псевдокоде (ниже) p является многочленом степени, большим единицы, а a является многочленом.
function inverse(a, p)
t := 0; newt := 1
r := p; newr := a
while newr ≠ 0 do
quotient := r div newr
(r, newr) := (newr, r − quotient × newr)
(t, newt) := (newt, t − quotient × newt)
if degree(r) > 0 thenreturn "Either p is not irreducible or a is a multiple of p"
return (1/r) × t
Пример
Например, пусть многочлен определяет конечное поле , а является элементом, обратный которому нужно найти. Тогда работа алгоритма приведена ниже в таблице. Напомни, что в поле порядка , имеем -z = z и z + z = 0 для любого или элемента z поля). Поскольку 1 является единственным ненулевым элементом GF(2), подгонка последней строки псевдокода не нужна.
шаг
частное
r, newr
s, news
t, newt
1
0
0
1
1
1
2
3
x + 1
4
x + 1
Таким образом, обратный элемент равен , что подтверждается умножением двух элементов[англ.] и взятия остатка по p от результата.
Случай более двух чисел
Можно обрабатывать случай более двух чисел итеративно. Сначала покажем, что . Для доказательства положим . По определению НОД является делителем и . Тогда для некоторого . Аналогично является делителем , так что для некоторого . Положим . По построению , , но поскольку является наибольшим делителем, является обратимым элементом. А поскольку , результат доказан.
Таким образом, если , то есть и , такие что , так что конечным уравнением будет
Les noms de personnes en Espagne se composent, comme dans la plupart des pays hispanophones, d'un prénom (nombre) et de deux noms de famille (apellidos) : traditionnellement le premier nom de famille du père (patronyme), suivi du premier de la mère, même si, en Espagne, la loi sur l'égalité des sexes de 1999, autorise désormais n'importe quel ordre[1]. Dans un contexte informel, on utilise le plus souvent le prénom suivi du premier apellido. Le nom au complet sert dans le cadre j...
UN Secretary-General from 1961 to 1971 In this Burmese name, U is an honorific, not a given name. UThantသန့်U Thant in 19633rd Secretary-General of the United NationsIn office30 November 1961 – 31 December 1971Preceded byDag HammarskjöldSucceeded byKurt Waldheim Personal detailsBorn(1909-01-22)22 January 1909Pantanaw, British Burma(now Myanmar)Died25 November 1974(1974-11-25) (aged 65)New York City, New York, U.S.Cause of deathLung cancerResting placeKandawm...
Cet article est une ébauche concernant le thé. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Pour l’article homonyme, voir Blend. Différentes variétés de thé du Sri Lanka Un blend est un mélange de différentes variétés de thé, dans le but de créer un parfum particulier, bien équilibré, en combinant des thés de différentes origines et saveurs. Le procédé a également pour conséquence de lis...
Questa voce sugli argomenti allenatori di pallacanestro statunitensi e cestisti statunitensi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti dei progetti di riferimento 1, 2. Hal Greer Greer con la maglia dei Philadelphia 76ers Nazionalità Stati Uniti Altezza 188 cm Peso 79 kg Pallacanestro Ruolo Guardia / playmakerAllenatore Termine carriera 1973 - giocatore1981 - allenatore Hall of fame Naismith Hall of Fame (1982) C...
Football match1971 Copa Libertadores finalsEvent1971 Copa Libertadores Estudiantes (LP) Nacional 2–2 on pointsNacional won after a play-offFirst leg Estudiantes (LP) Nacional 1 0 Date26 May 1971VenueEstudiantes, La PlataRefereeMario Canessa (Chile)Attendance30,000Second leg Nacional Estudiantes (LP) 1 0 Date2 June 1971VenueEstadio Centenario, MontevideoRefereeJosé Favilli Neto (Brazil)Attendance70,000Play-off Nacional Estudiantes (LP) 2 0 Date9 June 1971 (1971-06-09)VenueEs...
Indian actress (born 1987) Taapsee PannuPannu in 2022BornTapasee Pannu[1] (1987-08-01) 1 August 1987 (age 36)New Delhi, IndiaAlma materGuru Tegh Bahadur Institute of TechnologyOccupationActressYears active2010–presentWorksFull listSpouse Mathias Boe (m. 2024) Tapasee Pannu[1] (born 1 August 1987), known as Taapsee Pannu, is an Indian actress who works primarily in Hindi, Telugu, and Tamil films. She has received several awards, i...
Державний комітет телебачення і радіомовлення України (Держкомтелерадіо) Приміщення комітетуЗагальна інформаціяКраїна УкраїнаДата створення 2003Керівне відомство Кабінет Міністрів УкраїниРічний бюджет 1 964 898 500 ₴[1]Голова Олег НаливайкоПідвідомчі ор...
بنك الجنوبالشعارمعلومات عامةالتأسيس 2007 النوع منظمة دولية — development bank (en) المقر الرئيسي كاراكاس المنظومة الاقتصاديةالصناعة تمويل — international governmental or non-governmental organizations (en) تعديل - تعديل مصدري - تعديل ويكي بيانات بنك الجنوب (بالإسبانية: Banco del Sur)(بالبرتغالية: Banco do Sul)(بالهولن...
English-Canadian musician (born 1949) For the footballer, see Paul Rodgers (footballer). For other people with similar names, see Paul Rogers. Paul RodgersRodgers performing with Queen in 2005Background informationBirth namePaul Bernard RodgersBorn (1949-12-17) 17 December 1949 (age 74)Middlesbrough, EnglandGenres Rock blues rock hard rock blues soul blues Occupation(s)SingersongwritermusicianInstrument(s)VocalsguitarpianoYears active1968–presentLabelsAtlanticVictor EntertainmentSPV Gm...
Human settlement in WalesPenywaunWelsh: Pen-y-waunPenywaunLocation within Rhondda Cynon TafOS grid referenceSN974045Principal areaRhondda Cynon TafPreserved countyMid GlamorganCountryWalesSovereign stateUnited KingdomPost townAberdarePostcode districtCF44Dialling code01685PoliceSouth WalesFireSouth WalesAmbulanceWelsh UK ParliamentCynon ValleySenedd Cymru – Welsh ParliamentCynon Valley List of places UK Wales Rhondda Cynon Taf 51°44′00″N 3°29�...
1960 film 12 to the MoonTheatrical release posterDirected byDavid BradleyWritten byFred GebhardtDeWitt BodeenProduced byFred GebhardtStarringKen ClarkMichi KobiTom ConwayAnna-LisaCinematographyJohn AltonEdited byEdward MannMusic byMichael AndersenDistributed byColumbia PicturesRelease date June 1960 (1960-06) Running time74 minutesCountryUnited StatesLanguageEnglishBudget$150,000 12 to the Moon is a 1960 independently made American black-and-white science fiction film, produced and ...
State's representative in a French department or region You can help expand this article with text translated from the corresponding article in French. (January 2021) Click [show] for important translation instructions. View a machine-translated version of the French article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy...
Primera Divisió 1996-1997 Competizione Primera Divisió Sport Calcio Edizione 2ª Organizzatore FAF Date dal ottobre 1996al 1º giugno 1997 Luogo Andorra Partecipanti 12 Risultati Vincitore Principat(1º titolo) Retrocessioni FC AldosaUE Les BonsSpordany Juvenil Statistiche Miglior marcatore Patricio Gonzalez Fernandez (25) Incontri disputati 132 Squadre partecipanti Cronologia della competizione 1995-1996 1997-1998 Manuale La Primera Divisió 1996-1997 fu la s...
Cet article est une ébauche concernant la botanique. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Cet article possède un paronyme, voir L'Épine. Épines d'Ocotillo. En botanique, une épine est un piquant issu de la métamorphose d'organes végétatifs, tels que les racines, la tige, les stipules, et le plus souvent les feuilles modifiées (cataphylles) qui n'ont pas de rôle photosynthétique mais sont sp...
Governing body for the sport of rugby union New South Wales CountrySportRugby UnionJurisdictionNew South Wales Regions, except Sydney & Southern NSWMembership10 unions (109 teams)AbbreviationNSWCRUFounded1947(77 years ago) (1947)AffiliationNew South Wales Rugby UnionPresidentBarry RuddyOfficial websitenswcountryrugby.com.au The New South Wales Country Rugby Union, or NSWCRU, is the governing body for the sport of rugby union within most of New South Wales in Australia. The NSWCR...
Buffalo PeakBuffalo Peak viewed from Pikes PeakHighest pointElevation11,594 ft (3,534 m)[1][2]Prominence929 ft (283 m)[2]Isolation4.28 mi (6.89 km)[2]ListingColorado county high points 38thCoordinates39°16′32″N 105°22′05″W / 39.2755456°N 105.3680534°W / 39.2755456; -105.3680534[3]GeographyBuffalo PeakColorado LocationHigh point of Jefferson County, Colorado, United States[2]P...
American comic book writer C. B. CebulskiCebulski at a Meet the Publishers Q&A at Midtown Comics Downtown in Manhattan, April 14, 2011BornChester Bror Cebulski[1]NationalityAmericanArea(s)Writer, EditorPseudonym(s)Akira YoshidaNotable worksMarvel Fairy Tales Chester Bror Cebulski (/səˈbʌlski/[2]) is an American writer and editor for Marvel Comics, known for his work on titles such as Marvel Fairy Tales. As of November 2017, he holds the position of editor-in-chief.[...
Lockheed Martin expendable launch system Not to be confused with Athena (spacecraft) or Advanced Telescope for High Energy Astrophysics. AthenaAthena II with Lunar ProspectorFunctionSmall, modular component launch vehicleManufacturerLockheed MartinAlliant TechsystemsCountry of originUnited StatesSizeHeight19.8 - 30.48 m (65 - 100 ft)Diameter2.36 m (92 in)Mass66,344 - 120,202 kg (146,264 - 265,000 lb)Stages2 or 3Capacity Payload to LEOMass794–1,896 kg (1,750–4,180 lb) Launch hist...
Henleycollegio elettoraleHenley nell'Oxfordshire Stato Regno Unito CapoluogoHenley-on-Thames, Thame, Chinnor Elezioni perCamera dei comuni Eletti1 deputato Tipologiauninominale Istituzione1885 Creato daOxfordshire Soppressione2024 Sostituito daHenley and Thame, Bicester and Woodstock Manuale Henley è stato un collegio elettorale inglese situato nell'Oxfordshire rappresentato alla camera dei Comuni del parlamento del Regno Unito. Eleggeva un membro del parlamento con il sistema magg...