Метод множення Шенхаге — Штрассена (англ. Schönhage–Strassen algorithm) — алгоритм множення великих цілих чисел, заснований на швидкому перетворенні Фур'є, потребує ) бітових операцій, де — кількість двійкових цифр у добутку.
Історія
Метод швидкого перетворення Фур'є зі складністю став широко відомим 1965 року після публікації статті Джеймса Кулі та Джона Тьюкі.
Застосувати швидке перетворення Фур'є для множення великих чисел запропонував 1968 року Фолькер Штрассен. Разом із Арнольдом Шьоханге вони уточнили метод та опублікували алгоритм 1971 року.
Ідея алгоритму
Фактично — це метод множення многочленів від однієї змінної; перетворюється на алгоритм множення чисел, якщо числа подати як многочлени від основи системи числення, а після отримання добутку многочленів зробити знесення старших розрядів у коефіцієнтах. Наприклад, для множення 157 на 171 (у десятковій системі числення) виконуються такі операції:
- подається як , а — як , де ;
- за допомогою швидкого перетворення Фур'є перемножуються многочлени і (результат: );
- застосовується знесення старших розрядів у коефіцієнтах многочлена-добутку: .
Результат: .
Також алгоритм дозволяє множити за модулем чисел Ферма , якщо застосувати двійкову систему числення.
Оцінка складності
Як довели у своїй публікації Шенхаге і Штрассен, алгоритм потребує ) бітових операцій, де — кількість двійкових цифр у добутку.
Порівняння з іншими методами
На практиці метод Шенхаге — Штрассена починає перевершувати раніше відомі класичні методи, такі як множення Карацуби та (узагальнення методу Карацуби), починаючи з цілих чисел порядку — (від 10 000 до 40 000 десяткових знаків).
Метод вважався асимптотично найшвидшим до винайдення (2007 рік), який має меншу асимптотичну оцінку: , де log*n — повторний логарифм. Утім, різниця в часі виконання між цими двома методами стає помітною лише для настільки великих чисел, які практично не трапляються.
Примітки
- Bürgisser P., Clausen M., Shokrollahi A. Algebraic Complexity Theory. — Berlin : , 1997. — 618 p. — ..
- Knuth, 2008, Section 4.3.3 С.
- Schönhage A., Strassen V. Schnelle Multiplikation großer Zahlen // Computing. — 1971. — № 7. — С. 281—292.
- Meter van R., Itoh K. M. Fast quantum modular exponentiation // Physical Review A. — 2005. — Т. 71. з джерела 7 лютого 2006. Процитовано 2023-05-28.
- Coronado García L. C. Can Schönhage multiplication speed up the RSA encryption or decryption? // University of Technology. — Darmstadt, 2005. з джерела 29 грудня 2009. Процитовано 2023-05-28.
- Fürer M. Faster integer multiplication // STOC 2007 Proceedings. — 2007. — С. 57—66. з джерела 25 квітня 2013.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ne plutati z algoritmom Shtrassena dlya mnozhennya matric Metod mnozhennya Shenhage Shtrassena angl Schonhage Strassen algorithm algoritm mnozhennya velikih cilih chisel zasnovanij na shvidkomu peretvorenni Fur ye 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 IstoriyaMetod shvidkogo peretvorennya Fur ye zi skladnistyu O N log N displaystyle O N cdot log N stav shiroko vidomim 1965 roku pislya publikaciyi statti Dzhejmsa Kuli ta Dzhona Tyuki Zastosuvati shvidke peretvorennya Fur ye dlya mnozhennya velikih chisel zaproponuvav 1968 roku Folker Shtrassen Razom iz Arnoldom Shohange voni utochnili metod ta opublikuvali algoritm 1971 roku Ideya algoritmuFaktichno ce metod mnozhennya mnogochleniv vid odniyeyi zminnoyi peretvoryuyetsya na algoritm mnozhennya chisel yaksho chisla podati yak mnogochleni vid osnovi sistemi chislennya a pislya otrimannya dobutku mnogochleniv zrobiti znesennya starshih rozryadiv u koeficiyentah Napriklad dlya mnozhennya 157 na 171 u desyatkovij sistemi chislennya vikonuyutsya taki operaciyi 157 displaystyle 157 podayetsya yak x 2 5 x 7 displaystyle x 2 5x 7 a 171 displaystyle 171 yak x 2 7 x 1 displaystyle x 2 7x 1 de x 10 displaystyle x 10 za dopomogoyu shvidkogo peretvorennya Fur ye peremnozhuyutsya mnogochleni x 2 5 x 7 displaystyle x 2 5x 7 i x 2 7 x 1 displaystyle x 2 7x 1 rezultat x 4 12 x 3 43 x 2 54 x 7 displaystyle x 4 12x 3 43x 2 54x 7 zastosovuyetsya znesennya starshih rozryadiv u koeficiyentah mnogochlena dobutku 2 x 4 6 x 3 8 x 2 4 x 7 displaystyle 2x 4 6x 3 8x 2 4x 7 Rezultat 26847 displaystyle 26847 Takozh algoritm dozvolyaye mnozhiti za modulem chisel Ferma 2 2 n 1 displaystyle 2 2 n 1 yaksho zastosuvati dvijkovu sistemu chislennya Ocinka skladnostiYak doveli u svoyij publikaciyi Shenhage i Shtrassen 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 Porivnyannya z inshimi metodamiNa praktici metod Shenhage Shtrassena pochinaye perevershuvati ranishe vidomi klasichni metodi taki yak mnozhennya Karacubi ta uzagalnennya metodu Karacubi pochinayuchi z cilih chisel poryadku 10 10000 displaystyle 10 10000 10 40000 displaystyle 10 40000 vid 10 000 do 40 000 desyatkovih znakiv Metod vvazhavsya asimptotichno najshvidshim do vinajdennya 2007 rik yakij maye menshu asimptotichnu ocinku O n log n 2 O log n displaystyle O n log n cdot 2 O log n de log n povtornij logarifm Utim riznicya v chasi vikonannya mizh cimi dvoma metodami staye pomitnoyu lishe dlya nastilki velikih chisel yaki praktichno ne traplyayutsya PrimitkiBurgisser P Clausen M Shokrollahi A Algebraic Complexity Theory Berlin Springer Verlag 1997 618 p ISBN 3 540 60582 7 Knuth 2008 Section 4 3 3 S Schonhage A Strassen V Schnelle Multiplikation grosser Zahlen Computing 1971 7 S 281 292 Meter van R Itoh K M Fast quantum modular exponentiation Physical Review A 2005 T 71 z dzherela 7 lyutogo 2006 Procitovano 2023 05 28 Coronado Garcia L C Can Schonhage multiplication speed up the RSA encryption or decryption University of Technology Darmstadt 2005 z dzherela 29 grudnya 2009 Procitovano 2023 05 28 Furer M Faster integer multiplication STOC 2007 Proceedings 2007 S 57 66 z dzherela 25 kvitnya 2013