Довга арифметика (в обчислювальній техніці) — операції над числами, розрядність яких перевищує довжину машинного слова обчислювальної машини. По суті арифметика з великими числами являє собою набір алгоритмів виконання базових операцій (додавання, множення, зведення в степінь …) над числами, реалізованими не апаратно, а програмно, застосовуючи базові апаратні засоби обчислення для операцій з числами фіксованого розміру, що обмежений наявним процесором чи обраною мовою програмування. Окремий випадок — арифметика довільної точності (англ. Arbitrary-precision arithmetic) — в якій довжина чисел обмежена тільки обсягом доступної пам'яті комп'ютера.
Потреба
- Комп'ютери малої розрядності, мікроконтролери. Наприклад, мікроконтролери серії AVR мають 8-бітні регістри й 10-бітний АЦП — так що при обробці інформації без довгої арифметики не обійтися.
- Довга арифметика застосовується в криптографічних протоколах RSA і Діффі — Геллмана. Із метою запобігання відомих атак, розміри чисел мають перевищувати 21024 (~10309). Поширені мови програмування, такі як C і Java, здебільшого можуть оперувати тільки числами обмеженої довжини.
- Математичне та фінансове ПЗ потребує, щоб результат обчислення на комп'ютері збігався з результатами обчислення на папері до останнього розряду. Зокрема, калькулятор Windows (починаючи з Windows 95).
- Числа з рухомою комою. У комп'ютерах числа з рухомою комою представлені у вигляді n = s * m * bx, де n — саме число, s — знак числа, m — мантиса, b — основа показникової функції, x — показник степеня. При обробці чисел підвищеної точності, розміри мантиси можуть перевищити апаратні або програмні обмеження. У таких випадках для мантиси також доводиться застосовувати алгоритми роботи з великими числами.
Апаратні засоби для роботи з довгою арифметикою
Строго кажучи, для реалізації арифметики довільної точності від процесора вимагається лише непряма адресація; в арифметиці фіксованої точності можна обійтися навіть без неї. Тим не менше, певні функції процесора прискорюють довгу арифметику, одночасно спрощуючи її програмування.
- Прапор переносу. Операції «додати / відняти, з перенесенням», циклічний зсув через біт перенесення.
- Автоінкрементні чи автодекрементні операції доступу до пам'яті.
Порядок слів
Незалежно від апаратного порядку байтів та порядку байтів в операційній системі, у довгій арифметиці застосовується власний порядок слів: або «спочатку молодші» (англ. little-endian), або «спочатку старші» (big-endian). Частіше застосовується порядок «спочатку молодші» — оскільки більшість операцій із довгими числами починається з їх молодших розрядів.
Реалізація в мовах програмування
У більшості мов високого рівня реалізовано арифметику з числами довжиною два машинних слова. Спочатку процесори були переважно 16-бітовими, таким чином, можна було оперувати з числами довжиною до 32 біт (чотири байти). Арифметику з довшими числами зазвичай доводилося програмувати самостійно, у міру потреби оптимізуючи на асемблері — оскільки у мовах високого рівня зазвичай немає таких абстракцій як «регістрова пара» чи «біт перенесення».
Довга десяткова арифметика була реалізована в мові програмування Алмір-65 на ЕОМ МИР-1 (1965 рік) і в мові програмування на ЕОМ МИР-2.
У Turbo Pascal (1980-і роки) існував шестибайтовий емулюючий дробовий тип — Real (у Delphi перейменований в Real48). Обчислення з ним також проводилися за допомогою довгої арифметики.
Після поширення 32-бітової архітектури (наприкінці 1900-х років) у багатьох мовах програмування з'явилася можливість оперувати 64-бітовими числами. Однак, вбудовані типи даних у мовах програмування мають розмір, який, здебільшого, не перевищує 64 біти. Наприклад, для C99 максимальна довжина вбудованого типу даних long становить 64 біти, що дозволяє оперувати з числами десь до 1019. Втім, у деяких мовах програмування, таких як Python, є спеціалізовані бібліотеки для обчислень з довгими числами.
На початку 2000-х років для роботи з великими числами розроблено декілька оптимізованих універсальних бібліотек, зокрема:
- GMP
- LibTomMath
Алгоритми
Алгоритми множення
Базовий
Шкільний метод множення «у стовпчик» потребує часу O (N * M), де N, M — розміри перемножуваних чисел.
Ефективніші алгоритми базового множення розробили Кнут і Комба (англ. Comba P.G.). Хоча асимптотична складність їх методів така ж, як і у шкільного (), але в них зберігається менше проміжних даних, тому вони працюють значно швидше.
Множення Карацуби
Алгоритм забезпечує найпростішу реалізацію з асимптотичною складністю меншою .
У найпростішому варіанті метод Карацуби ґрунтується на формулі:
Таким чином обчислення добутку двох чисел довжиною 2 потребує лише трьох множень — — замість чотирьох (як у базових методах) та додаткових додавання, віднімання і зсувів. Якщо операція множення потребує значно більшого часу ніж додаткові операції, то навіть безпосереднє застосування формули прискорює множення чисел подвійної точності.
Але основна ідея методу полягає в тому, що його можна застосовувати рекурсивно. Тоді для досить великих N час множення скорочується до межі , що дає вельми відчутну перевагу.
Рекурсивне множення Карацуби стає ефективнішим за швидкі базові методи для чисел довжиною десь 450—620 біт (тобто, 135—185 десяткових розрядів).
Алгоритм Тоома — Кука
Метод Карацуби узагальнено в [en].
Наприклад, якщо поділити множники на три рівні частини (замість двох, як у методі Карацуби), то добуток можна обчислити за п'ять операцій множення таких частин (тоді як базовий алгоритм потребує дев'яти множень). Якщо ж поділити множники на чотири частини, то обчислення добутку потребує семи множень (замість 16 за базовими алгоритмами).
Загалом довгі числа можна поділяти на довільну кількість частин і таким чином отримати алгоритм з асимптотичною обчислювальною складністю .
Алгоритм Шьонхаге — Штрассена
Застосування швидкого перетворення Фур'є для множення великих чисел запропонував 1968 року Штрассен. Разом із Шьоханге вони уточнили метод та опублікували алгоритм 1971 року.
Алгоритм множить числа x і y за модулем 2N+1: x * y mod 2N+1. Якщо потрібен повний результат множення (а не залишок по модулю), то на N слід накласти обмеження:
- N >= bits (x) + bits (y)
Як і в алгоритмі Карацуби, застосовується поділ вхідних чисел на частини, далі числа розглядають як поліноми від однієї змінної (основи системи числення), а для обчислення добутку поліномів застосовується швидке перетворення Фур'є. Воно полягає в обчисленні значення поліномів-множників у N точках, дискретному перетворенні Фур'є, обчисленні образу добутку в N точках (шляхом попарного множення, що потребує лише N операцій множення замість N2 у звичайному алгоритмі), оберненому перетворенні Фур'є для результату та побудові поліному-добутку шляхом інтерполяції за його значеннями в N точках. Після отримання добутку многочленів у коефіцієнтах потрібно зробити знесення старших розрядів, щоб отримати нормалізований запис числа-добутку в обраній системі числення.
Алгоритм потребує бітових операцій, де — кількість двійкових цифр у добутку.
На практиці алгоритм Шенхаге — Штрассена стає швидшим методу для множення чисел із кількома десятками тисяч десяткових знаків (—).
Було запропоновано цю статтю або розділ з Швидке перетворення Фур'є, але, можливо, це варто додатково . Пропозиція із серпня 2023. |
Параметр k контролює поділ вхідних даних на 2k частин, розміром M = N / 2k кожна. Це накладає обмеження на N: воно має ділитися без остачі на 2k. Попарне множення виконується по модулю 2N', де N' = 2 * M + k + 3 — число, округлене до добутку числа 2k на процесорний розмір елементів у бітах. Такий вибір N' дозволяє проводити розрахунки без втрат через переповнення. Результат інтерполяції можна представити в наступному вигляді:
- .
Щоб розв'язати цю систему рівнянь, можна взяти точки gi, де і змінюється від 0 до 2k−1, а g = 2(2N' / 2k) . g є 2k-им первісним коренем по модулю 2N' +1. Такий вибір вузлів інтерполяції гарантує, що система буде дозволена. Таким чином, у швидкому перетворенні Фур'є застосовуються тільки операції зсуву, додавання й віднімання.
Інші алгоритми множення
Цей розділ потребує доповнення. |
Алгоритми ділення
Для цілочисельного ділення багаторозрядного числа на однорозрядне застосовується стандартне ділення стовпчиком.
У найпростішому випадку подібний алгоритм можна застосовувати й для ділення багаторозрядних чисел. Втім, Дональд Кнут у своєму Мистецтві програмування запропонував кращий алгоритм.
Рекурсивний [de] застосовується для ділення дуже довгих цілих чисел. У цьому алгоритмі, зокрема, виконується множення довгих чисел, тож його обчислювальна складність визначається застосованим методом множення:
- Якщо для множення застосовуються алгоритми Карацуби чи Тоома—Кука зі складністю , то складність ділення також буде .
- Якщо ж для множення застосовуються асимптотично швидші алгоритми, подібні до алгоритму Шьонхаге — Штрассена, зі складністю , то складність ділення становитиме .
Приклади застосування
У пакеті [en] (GMP) версії 6.2.1 застосовуються такі алгоритми ділення:
- Найпростіший випадок — ділення багаторозрядного числа на однорозрядне (Single Limb Division).
- Базовий алгоритм ділення багатозначного числа на багатозначне (Basecase Division). Описано у Дональда Кнута в його Мистецтві програмування.
- Ділення методом «розділяй і володарюй» (Divide and Conquer Division).
- Block-Wise Barrett Division
- Exact Division — обчислюється тільки частка
- Exact Remainder — обчислюється тільки залишок
- Small Quotient Division — ділення з невеликою часткою
Джерела
- Knuth, 2008, Section 4.3.1. Algorithm M.
- Comba P.G. Experiments in fast multiplication of integers // Technical Report G320-2158.
- Василенко, 2003, с. 256—258.
- Knuth, 2008, Section 4.3.3, Algorithm A.
- Василенко, 2003, с. 258—259.
- Knuth, 2008, Section 4.3.3, Algorithm T.
- Knuth, 2008, Section 4.3.3, Algorithm С.
- Meter van R., Itoh K. M. Fast quantum modular exponentiation // Physical Review A. — 2005. — Т. 71. з джерела 7 лютого 2006. Процитовано 2023-06-20.
- Luis Carlos Coronado García. Can Schönhage multiplication speed up the RSA encryption or decryption? // University of Technology. — Darmstadt, 2005.
- Василенко, 2003, с. 259.
- Василенко, 2003, с. 260—262.
- Василенко, 2003, с. 262—269.
- Knuth, 2008, Section 4.3.1, Algorithm D.
- Christoph Burnikel; Joachim Ziegler (1998-10). Fast Recursive Division (англ.). Max-Planck-Institut für Informatik. оригіналу за 3 грудня 2013. Процитовано 27 червня 2014.
- Division Algorithms. GNU MP 6.2.1. Процитовано 20 червня 2023.
{{}}
: Cite має пустий невідомий параметр:|1=
()
Посилання
- Knuth, Donald (2008). Seminumerical Algorithms. The Art of Computer Programming. Т. 2 (вид. 3rd). Addison-Wesley. ISBN .
- Василенко О. Н. Теоретико-числовые алгоритмы в криптографии. — Москва : МЦНМО, 2003. — 328 с. — .
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Dovga arifmetika v obchislyuvalnij tehnici operaciyi nad chislami rozryadnist yakih perevishuye dovzhinu mashinnogo slova obchislyuvalnoyi mashini Po suti arifmetika z velikimi chislami yavlyaye soboyu nabir algoritmiv vikonannya bazovih operacij dodavannya mnozhennya zvedennya v stepin nad chislami realizovanimi ne aparatno a programno zastosovuyuchi bazovi aparatni zasobi obchislennya dlya operacij z chislami fiksovanogo rozmiru sho obmezhenij nayavnim procesorom chi obranoyu movoyu programuvannya Okremij vipadok arifmetika dovilnoyi tochnosti angl Arbitrary precision arithmetic v yakij dovzhina chisel obmezhena tilki obsyagom dostupnoyi pam yati komp yutera PotrebaKomp yuteri maloyi rozryadnosti mikrokontroleri Napriklad mikrokontroleri seriyi AVR mayut 8 bitni registri j 10 bitnij ACP tak sho pri obrobci informaciyi bez dovgoyi arifmetiki ne obijtisya Dovga arifmetika zastosovuyetsya v kriptografichnih protokolah RSA i Diffi Gellmana Iz metoyu zapobigannya vidomih atak rozmiri chisel mayut perevishuvati 21024 10309 Poshireni movi programuvannya taki yak C i Java zdebilshogo mozhut operuvati tilki chislami obmezhenoyi dovzhini Matematichne ta finansove PZ potrebuye shob rezultat obchislennya na komp yuteri zbigavsya z rezultatami obchislennya na paperi do ostannogo rozryadu Zokrema kalkulyator Windows pochinayuchi z Windows 95 Chisla z ruhomoyu komoyu U komp yuterah chisla z ruhomoyu komoyu predstavleni u viglyadi n s m bx de n same chislo s znak chisla m mantisa b osnova pokaznikovoyi funkciyi x pokaznik stepenya Pri obrobci chisel pidvishenoyi tochnosti rozmiri mantisi mozhut perevishiti aparatni abo programni obmezhennya U takih vipadkah dlya mantisi takozh dovoditsya zastosovuvati algoritmi roboti z velikimi chislami Aparatni zasobi dlya roboti z dovgoyu arifmetikoyuStrogo kazhuchi dlya realizaciyi arifmetiki dovilnoyi tochnosti vid procesora vimagayetsya lishe nepryama adresaciya v arifmetici fiksovanoyi tochnosti mozhna obijtisya navit bez neyi Tim ne menshe pevni funkciyi procesora priskoryuyut dovgu arifmetiku odnochasno sproshuyuchi yiyi programuvannya Prapor perenosu Operaciyi dodati vidnyati z perenesennyam ciklichnij zsuv cherez bit perenesennya Avtoinkrementni chi avtodekrementni operaciyi dostupu do pam yati Poryadok slivNezalezhno vid aparatnogo poryadku bajtiv ta poryadku bajtiv v operacijnij sistemi u dovgij arifmetici zastosovuyetsya vlasnij poryadok sliv abo spochatku molodshi angl little endian abo spochatku starshi big endian Chastishe zastosovuyetsya poryadok spochatku molodshi oskilki bilshist operacij iz dovgimi chislami pochinayetsya z yih molodshih rozryadiv Realizaciya v movah programuvannyaU bilshosti mov visokogo rivnya realizovano arifmetiku z chislami dovzhinoyu dva mashinnih slova Spochatku procesori buli perevazhno 16 bitovimi takim chinom mozhna bulo operuvati z chislami dovzhinoyu do 32 bit chotiri bajti Arifmetiku z dovshimi chislami zazvichaj dovodilosya programuvati samostijno u miru potrebi optimizuyuchi na asembleri oskilki u movah visokogo rivnya zazvichaj nemaye takih abstrakcij yak registrova para chi bit perenesennya Dovga desyatkova arifmetika bula realizovana v movi programuvannya Almir 65 na EOM MIR 1 1965 rik i v movi programuvannya na EOM MIR 2 U Turbo Pascal 1980 i roki isnuvav shestibajtovij emulyuyuchij drobovij tip Real u Delphi perejmenovanij v Real48 Obchislennya z nim takozh provodilisya za dopomogoyu dovgoyi arifmetiki Pislya poshirennya 32 bitovoyi arhitekturi naprikinci 1900 h rokiv u bagatoh movah programuvannya z yavilasya mozhlivist operuvati 64 bitovimi chislami Odnak vbudovani tipi danih u movah programuvannya mayut rozmir yakij zdebilshogo ne perevishuye 64 biti Napriklad dlya C99 maksimalna dovzhina vbudovanogo tipu danih long stanovit 64 biti sho dozvolyaye operuvati z chislami des do 1019 Vtim u deyakih movah programuvannya takih yak Python ye specializovani biblioteki dlya obchislen z dovgimi chislami Na pochatku 2000 h rokiv dlya roboti z velikimi chislami rozrobleno dekilka optimizovanih universalnih bibliotek zokrema GMP LibTomMathAlgoritmiAlgoritmi mnozhennya Bazovij Shkilnij metod mnozhennya u stovpchik potrebuye chasu O N M de N M rozmiri peremnozhuvanih chisel Efektivnishi algoritmi bazovogo mnozhennya rozrobili Knut i Komba angl Comba P G Hocha asimptotichna skladnist yih metodiv taka zh yak i u shkilnogo O N 2 displaystyle O N 2 ale v nih zberigayetsya menshe promizhnih danih tomu voni pracyuyut znachno shvidshe Mnozhennya Karacubi Algoritm zabezpechuye najprostishu realizaciyu z asimptotichnoyu skladnistyu menshoyu O N 2 displaystyle O N 2 Dokladnishe Mnozhennya Karacubi U najprostishomu varianti metod Karacubi gruntuyetsya na formuli a b x c d x a c a b c d a c b d x b d x 2 displaystyle a bx c dx ac a b c d ac bd x bdx 2 Takim chinom obchislennya dobutku dvoh chisel dovzhinoyu 2 potrebuye lishe troh mnozhen a c b d a b c d displaystyle a times c quad b times d quad a b times c d zamist chotiroh yak u bazovih metodah ta dodatkovih dodavannya vidnimannya i zsuviv Yaksho operaciya mnozhennya potrebuye znachno bilshogo chasu nizh dodatkovi operaciyi to navit bezposerednye zastosuvannya formuli priskoryuye mnozhennya chisel podvijnoyi tochnosti Ale osnovna ideya metodu polyagaye v tomu sho jogo mozhna zastosovuvati rekursivno Todi dlya dosit velikih N chas mnozhennya skorochuyetsya do mezhi O N lg 3 N 1 585 displaystyle O N lg 3 approx N 1 585 sho daye velmi vidchutnu perevagu Rekursivne mnozhennya Karacubi staye efektivnishim za shvidki bazovi metodi dlya chisel dovzhinoyu des 450 620 bit tobto 135 185 desyatkovih rozryadiv Algoritm Tooma Kuka Metod Karacubi uzagalneno v en Napriklad yaksho podiliti mnozhniki na tri rivni chastini zamist dvoh yak u metodi Karacubi to dobutok mozhna obchisliti za p yat operacij mnozhennya takih chastin todi yak bazovij algoritm potrebuye dev yati mnozhen Yaksho zh podiliti mnozhniki na chotiri chastini to obchislennya dobutku potrebuye semi mnozhen zamist 16 za bazovimi algoritmami Zagalom dovgi chisla mozhna podilyati na dovilnu kilkist chastin i takim chinom otrimati algoritm z asimptotichnoyu obchislyuvalnoyu skladnistyu O N 2 2 log 2 N log 2 N displaystyle O N times 2 sqrt 2 log 2 N log 2 N Algoritm Shonhage Shtrassena Dokladnishe Algoritm Shonhage Shtrassena Zastosuvannya shvidkogo peretvorennya Fur ye dlya mnozhennya velikih chisel zaproponuvav 1968 roku Shtrassen Razom iz Shohange voni utochnili metod ta opublikuvali algoritm 1971 roku Algoritm mnozhit chisla x i y za modulem 2N 1 x y mod 2N 1 Yaksho potriben povnij rezultat mnozhennya a ne zalishok po modulyu to na N slid naklasti obmezhennya N gt bits x bits y Yak i v algoritmi Karacubi zastosovuyetsya podil vhidnih chisel na chastini dali chisla rozglyadayut yak polinomi vid odniyeyi zminnoyi osnovi sistemi chislennya a dlya obchislennya dobutku polinomiv zastosovuyetsya shvidke peretvorennya Fur ye Vono polyagaye v obchislenni znachennya polinomiv mnozhnikiv u N tochkah diskretnomu peretvorenni Fur ye obchislenni obrazu dobutku v N tochkah shlyahom poparnogo mnozhennya sho potrebuye lishe N operacij mnozhennya zamist N2 u zvichajnomu algoritmi obernenomu peretvorenni Fur ye dlya rezultatu ta pobudovi polinomu dobutku shlyahom interpolyaciyi za jogo znachennyami v N tochkah Pislya otrimannya dobutku mnogochleniv u koeficiyentah potribno zrobiti znesennya starshih rozryadiv shob otrimati normalizovanij zapis chisla dobutku v obranij sistemi chislennya Algoritm potrebuye O N log N log log N displaystyle O N cdot log N cdot log log N bitovih operacij de N displaystyle N kilkist dvijkovih cifr u dobutku Na praktici algoritm Shenhage Shtrassena staye shvidshim metodu dlya mnozhennya chisel iz kilkoma desyatkami tisyach desyatkovih znakiv 10 10000 displaystyle 10 10000 10 40000 displaystyle 10 40000 Dokladnishe Shvidke peretvorennya Fur ye Bulo zaproponovano ob yednati cyu stattyu abo rozdil z Shvidke peretvorennya Fur ye ale mozhlivo ce varto dodatkovo obgovoriti Propoziciya iz serpnya 2023 Parametr k kontrolyuye podil vhidnih danih na 2k chastin rozmirom M N 2k kozhna Ce nakladaye obmezhennya na N vono maye dilitisya bez ostachi na 2k Poparne mnozhennya vikonuyetsya po modulyu 2N de N 2 M k 3 chislo okruglene do dobutku chisla 2k na procesornij rozmir elementiv u bitah Takij vibir N dozvolyaye provoditi rozrahunki bez vtrat cherez perepovnennya Rezultat interpolyaciyi mozhna predstaviti v nastupnomu viglyadi w n i j b 2 k n b 0 1 1 b x i y i displaystyle w n sum i j b 2 k n b 0 1 1 b x i y i Shob rozv yazati cyu sistemu rivnyan mozhna vzyati tochki gi de i zminyuyetsya vid 0 do 2k 1 a g 2 2N 2k g ye 2k im pervisnim korenem po modulyu 2N 1 Takij vibir vuzliv interpolyaciyi garantuye sho sistema bude dozvolena Takim chinom u shvidkomu peretvorenni Fur ye zastosovuyutsya tilki operaciyi zsuvu dodavannya j vidnimannya Inshi algoritmi mnozhennya Cej rozdil potrebuye dopovnennya Algoritmi dilennya Dlya cilochiselnogo dilennya bagatorozryadnogo chisla na odnorozryadne zastosovuyetsya standartne dilennya stovpchikom U najprostishomu vipadku podibnij algoritm mozhna zastosovuvati j dlya dilennya bagatorozryadnih chisel Vtim Donald Knut u svoyemu Mistectvi programuvannya zaproponuvav krashij algoritm Rekursivnij de zastosovuyetsya dlya dilennya duzhe dovgih cilih chisel U comu algoritmi zokrema vikonuyetsya mnozhennya dovgih chisel tozh jogo obchislyuvalna skladnist viznachayetsya zastosovanim metodom mnozhennya Yaksho dlya mnozhennya zastosovuyutsya algoritmi Karacubi chi Tooma Kuka zi skladnistyu O n a displaystyle O n alpha to skladnist dilennya takozh bude O n a displaystyle O n alpha Yaksho zh dlya mnozhennya zastosovuyutsya asimptotichno shvidshi algoritmi podibni do algoritmu Shonhage Shtrassena zi skladnistyu O n log n log log n displaystyle O n cdot log n cdot log log n to skladnist dilennya stanovitime O n log 2 n log log n displaystyle O n log 2 n log log n Prikladi zastosuvannya U paketi en GMP versiyi 6 2 1 zastosovuyutsya taki algoritmi dilennya Najprostishij vipadok dilennya bagatorozryadnogo chisla na odnorozryadne Single Limb Division Bazovij algoritm dilennya bagatoznachnogo chisla na bagatoznachne Basecase Division Opisano u Donalda Knuta v jogo Mistectvi programuvannya Dilennya metodom rozdilyaj i volodaryuj Divide and Conquer Division Block Wise Barrett Division Exact Division obchislyuyetsya tilki chastka Exact Remainder obchislyuyetsya tilki zalishok Small Quotient Division dilennya z nevelikoyu chastkoyuDzherelaKnuth 2008 Section 4 3 1 Algorithm M Comba P G Experiments in fast multiplication of integers Technical Report G320 2158 Vasilenko 2003 s 256 258 Knuth 2008 Section 4 3 3 Algorithm A Vasilenko 2003 s 258 259 Knuth 2008 Section 4 3 3 Algorithm T Knuth 2008 Section 4 3 3 Algorithm S Meter van R Itoh K M Fast quantum modular exponentiation Physical Review A 2005 T 71 z dzherela 7 lyutogo 2006 Procitovano 2023 06 20 Luis Carlos Coronado Garcia Can Schonhage multiplication speed up the RSA encryption or decryption University of Technology Darmstadt 2005 Vasilenko 2003 s 259 Vasilenko 2003 s 260 262 Vasilenko 2003 s 262 269 Knuth 2008 Section 4 3 1 Algorithm D Christoph Burnikel Joachim Ziegler 1998 10 Fast Recursive Division angl Max Planck Institut fur Informatik originalu za 3 grudnya 2013 Procitovano 27 chervnya 2014 Division Algorithms GNU MP 6 2 1 Procitovano 20 chervnya 2023 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Cite maye pustij nevidomij parametr 1 dovidka PosilannyaKnuth Donald 2008 Seminumerical Algorithms The Art of Computer Programming T 2 vid 3rd Addison Wesley ISBN 978 0 201 89684 8 Vasilenko O N Teoretiko chislovye algoritmy v kriptografii Moskva MCNMO 2003 328 s ISBN 5 94057 103 4 Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi