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

Розширений алгоритм Евкліда — це розширення алгоритму Евкліда. Окрім знаходження найбільшого спільного дільника для цілих a і b, як це робить алгоритм Евкліда, він також знаходить цілі x і y (одне з яких зазвичай від'ємне), які задовольняють рівнянню Безу.

Розширений алгоритм Евкліда особливо корисний коли a і b взаємно прості числа, бо x — обернене щодо a за модулем b, а y — обернене щодо b за модулем a.

Неформальне визначення алгоритму

Ділене Дільник Частка Остача
120 23 5 5
23 5 4 3
5 3 1 2
3 2 1 1
2 1 2 0

Для пояснення алгоритму Евкліда, розглянемо обчислення НСД(120, 23), що показано на таблиці ліворуч.

В цьому випадку, остача в четвертому рядку (дорівнює 1) показує, що НСД 1; тобто 120 і 23 взаємно прості. Задля простоти обрані взаємно прості числа; але загальний випадок, коли НСД не дорівнює 1 спрацьовує подібним чином.

Існують два методи обробки, обидва із використанням ділення з остачею.

Ітеративний метод

Цей метод обчислює вираз виду для остачі на кожному кроці алгоритму Евкліда. Кожний наступний номер можна записати як остачу від ділення попередніх двох таких чисел, цю остачу можна виразити, використовуючи частку qi так:

Через заміну це дає:

що можна записати як

Перші два значення алгоритму є початковими аргументами алгоритму:

Отже коефіцієнти мають такі початкові значення: x1 = 1, y1 = 0, x2 = 0, і y2 = 1. Інші отримуються за допомогою виразів:

Вираз для останньої ненульової остачі дає бажаний результат, бо цей метод обчислює кожний залишок у вигляді a і b, як і вимагалось.

Приклад: Обчислити НСД для 120 і 23.

Обчислення відбуваються так:

Крок Частка Остача Заміна Сума термів
1 120 120 = 120 × 1 + 23 × 0
2 23 23 = 120 × 0 + 23 × 1
3 5 5 = 120 − 23 × 5 5 = (120 × 1 + 23 × 0) − (120 × 0 + 23 × 1) × 5 5 = 120 × 1 + 23 × −5
4 4 3 = 23 − 5 × 4 3 = (120 × 0 + 23 × 1) − (120 × 1 + 23 × −5) × 4 3 = 120 × −4 + 23 × 21
5 1 2 = 5 − 3 × 1 2 = (120 × 1 + 23 × −5) − (120 × −4 + 23 × 21) × 1 2 = 120 × 5 + 23 × −26
6 1 1 = 3 − 2 × 1 1 = (120 × −4 + 23 × 21) − (120 × 5 + 23 × −26) × 1 1 = 120 × −9 + 23 × 47
7 2 0 Кінець алгоритму

Розв'язок: x = −9 і y = 47.

Через те, що НСД виявився 1, отримуємо також, що 47 є оберненим до 23 за модулем 120, і також за модулем 23, -9 (або 14 = -9 + 23) є оберненим 120 (або тотожно 5 = 120 — 23 *5) .

47 × 23 ≡ 1 (mod 120) і також
−9 × 120 ≡14 × 5 ≡ 1 (mod 23).

Для того, щоб ціле a можна було обернути за модулем b, необхідно щоб a і b були взаємно простими, отже якщо НСД більший від 1, таке модульне обернення не існує.

Зауважте, що рівняння, що визначають значення xi незалежні від тих, які визначають значення yi, і що рівняння Безу отримане наприкінці

дозволяє вивести yk коли xk відоме. Користувач може опустити значення yi, не обчислюючи їх (хоча вони можуть бути корисними як перевірка на помилки обчислень).

Псевдокод

РОЗШИРЕНИЙ-ЕВКЛІД

  1. якщо
  2. повернути
  3. інакше РОЗШИРЕНИЙ-ЕВКЛІД
  4. повернути

Якщо b не нуль, тоді РОЗШИРЕНИЙ-ЕВКЛІД спочатку обчислює (d', x', y') такі, що d' = НСД(b, a mod b) і

Щоб отримати і такі, щоб ми перепишемо попереднє рівняння використавши, що так:

Швидкодія

Оскільки кількість рекурсивних викликів у звичайного і розширеного алгоритму Евкліда однакова, то їх час виконання однаковий аж до сталого множника. Тобто, для кількість рекурсивних викликів є

Код

C++

void ex_al_eu_in(int r1, int r2, int x1, int x2, int y1, int y2, int &gcd, int &a, int &b) {
	int r3 = r1 - r2 * (r1 / r2);
	int x3 = x1 - x2 * (r1 / r2);
	int y3 = y1 - y2 * (r1 / r2);
	if (r3)
		ex_al_eu_in(r2, r3, x2, x3, y2, y3, gcd, a, b);
	else {
		gcd = r2;
		a = x2;
		b = y2;
	}
}

void ex_al_eu(int r1, int r2, int &gcd, int &a, int &b) {
	ex_al_eu_in(r1 > r2 ? r1 : r2, r1 < r2 ? r1 : r2, 1, 0, 0, 1, gcd, r1 > r2 ? a : b, r1 < r2 ? a : b);
}
def extended_euclid(a, b):
        """ Повертає d=НСД(x,y) і x, y такі, що ax + by = d """
        if (b==0):
                return a, 1, 0
        d, x, y = extended_euclid(b, a % b)
        return d, y, x - (a//b)*y

Література

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Pages 859—861 of section 31.2: Greatest common divisor.

Посилання


Read other articles:

Lumbung padi suku Sasak, Lombok Artikel ini bukan mengenai silo. Lumbung padi adalah sebuah lumbung yang digunakan untuk menyimpan dan mengeringkan padi yang telah dipanen. Lumbung ini khusus didesain berdasarkan fungsinya, dan bisa bervariasi berdasarkan negara atau provinsi. Lumbung padi di Asia memiliki perbedaan yang signifikan dibandingkan lumbung padi yang berada di lokasi budidaya padi lainnya di dunia. Di Amerika Serikat, lumbung padi pernah banyak terlihat di negara bagian South Caro...

 

Chronologie de la France ◄◄ 1680 1681 1682 1683 1684 1685 1686 1687 1688 ►► Chronologies Carte de la France, 1684Données clés 1681 1682 1683  1684  1685 1686 1687Décennies :1650 1660 1670  1680  1690 1700 1710Siècles :XVe XVIe  XVIIe  XVIIIe XIXeMillénaires :-Ier Ier  IIe  IIIe Chronologies thématiques Art Architecture, Arts plastiques (Dessin, Gravure, Peinture et Sculpture), Littérature, Musique classique et Théâtre &#...

 

German U-boat commander Robert GysaeBorn(1911-01-14)14 January 1911Berlin-Charlottenburg, German EmpireDied26 April 1989(1989-04-26) (aged 78)Wilhelmshaven, West GermanyAllegiance Weimar Republic  Nazi Germany  West GermanyService/branch Reichsmarine Kriegsmarine German NavyYears of service1931–451956–70RankKorvettenkapitän (Kriegsmarine), Flottillenadmiral (Bundesmarine)Commands heldU-98U-177Battles/warsBattle of the AtlanticAwardsKnight's Cross o...

5-Nitroimidazol[1] Nama Nama IUPAC (preferensi) 5-Nitro-1H-imidazol Penanda Nomor CAS 3034-38-6 Y Model 3D (JSmol) Gambar interaktif 3DMet {{{3DMet}}} ChemSpider 10637918 Y Nomor EC PubChem CID 18208 Nomor RTECS {{{value}}} UNII Y8U32AZ5O7 Y CompTox Dashboard (EPA) DTXSID9062803 InChI InChI=1S/C3H3N3O2/c7-6(8)5-2-1-4-3-5/h1-3H YKey: KUNMIWQQOPACSS-UHFFFAOYSA-N Y SMILES c1cn(cn1)[N+](=O)[O-] Sifat Rumus kimia C3H3N3O2 Massa molar 113,08 g·mol−1 &#...

 

American college basketball season 2021–22 Stony Brook Seawolves men's basketballConferenceAmerica East ConferenceRecord18–13 (10–8 America East)Head coachGeno Ford (3rd season)Assistant coaches Bryan Weber Dan Rickard Jalen Avery Home arenaIsland Federal Credit Union ArenaSeasons← 2020–212022–23 → 2021–22 America East Conference men's basketball standings vte Conf Overall Team W   L   PCT W   L   PCT Vermont † 17 – 1 ...

 

Karlštejn castle Karlštejn (1916) is an opera by Czech composer Vítězslav Novák, a pupil of Dvořák. It was the composer's second opera and written with nationalist intentions during World War I.[1] The plot is based on Jaroslav Vrchlický's drama of the same name. It was moderately successful and performed over 70 times in Prague. Cast role voice premiere (18 Nov. 1916) Charles IV, Holy Roman Emperor bass Jiří Huml Queen Elizabeth of Pomerania soprano Gabriela Horvátová Arc...

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne s'appuie pas, ou pas assez, sur des sources secondaires ou tertiaires (février 2020). Pour améliorer la vérifiabilité de l'article ainsi que son intérêt encyclopédique, il est nécessaire, quand des sources primaires sont citées, de les associer à des analyses faites par des sources secondaires. 503e régiment du train Insigne régimentaire du 503e régiment du train. Création 1...

 

Elisa TovatiElisa Tovati at the premiere of La Vérité si je mens ! 3 in January 2012Informasi latar belakangNama lahirElisa TouatiLahir23 Maret 1976 (umur 48)Paris, France Elisa Tovati (lahir 23 Maret 1976 sebagai Elisa Touati) adalah seorang aktris, penyanyi, dan presenter televisi Prancis. Discografi Album Judul album Rincian album Chart posisi puncak FRA Ange Étrange Released: 2002 Label: Rapas Format: Digital download — Je ne mâche pas les mots Released: 15 May 2006 Label:...

 

Gyeryong 계룡KotamadyaTranskripsi Korea • Hangul계룡시 • Hanja鷄龍市 • Alih Aksara yang DisempurnakanGyeryong-si • McCune-ReischauerKyeryong-si Emblem dari GyeryongLokasi di Korea SelatanNegara Korea SelatanWilayahHoseoPembagian administratif2 myeon, 1 dongLuas • Total60,7 km2 (23,4 sq mi)Populasi (Des 2010) • Total43,269 • Kepadatan712,8/km2 (1,846/sq mi) •...

Cave located in Redcliffs, Christchurch Moncks CaveMoncks Cave in 2012Coordinates43°33′52″S 172°44′21″E / 43.5644006°S 172.7392656°E / -43.5644006; 172.7392656 Moncks Cave is a cave located in Redcliffs, Christchurch, New Zealand. The cave was uncovered by road workers in 1889, and is considered to be one of the greatest archaelogical sites in New Zealand. It is notable for the evidence that it has provided of early Māori occupation. History The cave was f...

 

У этого термина существуют и другие значения, см. Апостол Пётр (значения). Запрос «Святой Пётр» перенаправляется сюда; см. также другие значения. У этого термина существуют и другие значения, см. Кифа. Апостол ПётрСимон, сын Ионин Святой Пётр,икона VI века.Монастырь Святой...

 

 烏克蘭總理Прем'єр-міністр України烏克蘭國徽現任杰尼斯·什米加尔自2020年3月4日任命者烏克蘭總統任期總統任命首任維托爾德·福金设立1991年11月后继职位無网站www.kmu.gov.ua/control/en/(英文) 乌克兰 乌克兰政府与政治系列条目 宪法 政府 总统 弗拉基米尔·泽连斯基 總統辦公室 国家安全与国防事务委员会 总统代表(英语:Representatives of the President of Ukraine) 总...

Tōyama Kagemoto. Tōyama Kagemoto (Japanese: 遠山景元, September 27, 1793 – April 15, 1855) was a hatamoto and an official of the Tokugawa shogunate during the Edo period of Japanese history.[1] His ancestry was of the Minamoto clan of the Mino Province. His father, Kagemichi, was the magistrate of Nagasaki. Biography During his youth, Kagemoto departed from his household due to family conflict, and started a life among commoners as a vagabond. It was during this period of time...

 

نبس إمي معلومات شخصية تاريخ الميلاد القرن 15 ق.م  الزوج تحتمس الثالث  عائلة الأسرة المصرية الثامنة عشر  الحياة العملية المهنة سياسية  تعديل مصدري - تعديل   نبس إمي في الهيروغليفية نبس إميالمعنى غير واضح حمت نيسوتزوجة الملك حمت نيسوت مريتفزوجة الملك وحبيبته ن�...

 

Election in Kentucky Main article: 1804 United States presidential election 1804 United States presidential election in Kentucky ← 1800 2 November – 15 December 1804 1808 →   Nominee Thomas Jefferson Charles C. Pinckney Party Democratic-Republican Federalist Home state Virginia South Carolina Running mate George Clinton Rufus King Electoral vote 8 0 Popular vote 5,080 0 Percentage 100.00% 0.00% Elections in Kentucky Federal government President...

الإمام  أبو محمد علي بن حزم الأندلسي تخطيط اسم «ٱبْنُ حَزْمٍ ٱلْأَنْدَلُسِيُّ» بخط الثُّلُث ملحوقًا بالتَّرضي عنه: «». معلومات شخصية الميلاد 30 رمضان 384 هـ / 7 نوفمبر 994م.قرطبةقرطبة الوفاة 28 شعبان 456 هـ / 15 اغسطس 1064م ولبةلبلة مواطنة أندلسي الجنسية أندلسي اللقب ابن حزم الديا�...

 

5th President of the Dominican Republic (1856–1856) You can help expand this article with text translated from the corresponding article in Spanish. (February 2010) Click [show] for important translation instructions. View a machine-translated version of the Spanish 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 cop...

 

Duke of Brittany from 1457 to 1458 This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) You can help expand this article with text translated from the corresponding article in French. (June 2011) 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 translatio...

بطين أيسر الاسم العلميventriculus sinister cordis القلب كما يرى من اليسار. البطين الأيسر في اليسار والأسفل.البطين الأيسر في اليسار والأسفل. تفاصيل الشريان المغذي الفرع ما بين البطينين الأمامي للشريان التاجي الأيسر الوريد المصرف الوريد الخلفي للأذين الأيسر سلف البطين البدائي, بصلة ال...

 

Romanian writer Petru Maior Petru Maior (Romanian pronunciation: [ˈpetru ˈmajor]; 1756 in Marosvásárhely (now Târgu Mureș, Romania) – 14 February 1821 in Budapest) was a Romanian writer who is considered[1] one of the most influential personalities of the Age of Enlightenment in Transylvania (the Transylvanian School). Maior was a member of the Greek-Catholic clergy, a historian, philosopher, and linguist. Works Petru Maior took a stand and responded, in 1812, by writi...