Википедия

Умножение Карацубы

Умножение Карацубы — метод быстрого умножения, позволяющий перемножать два -значных числа с битовой вычислительной сложностью .

Изобретён Анатолием Карацубой в 1960 году. Является исторически первым алгоритмом умножения, превосходящим тривиальный по асимптотической сложности.

История

В 1960 году Колмогоров проводил семинар, посвящённый математическим задачам кибернетики. Одной из рассматриваемых на семинаре задач стало умножение двух image-разрядных целых чисел. Основным известным методом умножения в то время было умножение «в столбик», которое при алгоритмической реализации требовало image элементарных операций (сложений или умножений одноразрядных чисел). Колмогоров выдвинул гипотезу, что умножение «в столбик» является оптимальным алгоритмом умножения двух чисел в том смысле, что время работы любого метода умножения не меньше image по порядку величины. На правдоподобность «гипотезы image» указывало то, что метод умножения «в столбик» известен не менее четырёх тысячелетий, и если бы был более быстрый метод умножения, то он, вероятно, уже был бы найден. Однако, через неделю 23-летний Карацуба предложил новый метод умножения двух image-значных чисел с оценкой времени работы image и тем самым опроверг «гипотезу image».

Метод Карацубы относится к алгоритмам вида «разделяй и властвуй», наравне с такими алгоритмами как двоичный поиск, быстрая сортировка и др. Формулы рекурсивного сведения, используемые в методе Карацубы, были известны ещё Чарльзу Бэббиджу, который, однако, не обратил внимания на возможность использования лишь трёх рекурсивных умножений вместо четырёх.

Алгоритм

image
Сравнение алгоритма Карацубы и умножения в столбик. Внизу схематически показано дерево рекурсивных вызовов алгоритма для всё меньших и меньших чисел. Количество вершин на последнем его уровне соответствует количеству элементарных умножений. Видно, что у алгоритма Карацубы ширина дерева растёт значительно медленнее.

Два image-битовых числа можно представить в виде image, image, где image и image.

Умножение на image (битовый сдвиг) и сложение делаются за постоянное время image. Поэтому задача умножения сводится к вычислению коэффициентов многочлена image. Используя тождество:

image,

этот многочлен можно представить в виде:

image
image.

В последнем выражении участвуют три произведения image-значных чисел. Если вычислять каждое из них по той же схеме, получится алгоритм с рекуррентной оценкой времени работы:

image.

Для сравнения, аналогичный алгоритм, производящий отдельно все четыре умножения image, image, image, image, требовал бы обычного времени:

image.

Примеры

Для умножения двух восьмизначных (в десятичной записи) чисел image и image каждое из них представляется в виде суммы двух чисел вдвое меньшей разрядности, одно из которых взято со сдвигом:

image

Раскрывая скобки, произведение image и image можно переписать как:

image

Карацуба нашёл, что вместо четырёх умножений вдвое более коротких чисел, можно делать лишь три: image, image и image, в результате чего выражение преобразуется к виду:

image.

Для умножения укороченных вдвое чисел применяется тот же алгоритм: image представляется как image и так далее. На практике для достаточно коротких чисел применяется уже обычное умножение как более эффективное.

Подход работает в любой системе счисления, в том числе и в двоичной, используемой вычислительной техникой. Например, вычисление произведения двух 4096-битных двоичных чисел методом Карацубы требует image элементарных однобитовых умножений вместо image при умножении наивным методом.

Примечания

  1. На практике алгоритм становится эффективнее обычного умножения при умножении чисел длиной порядка сотен двоичных (десятков десятичных) разрядов, на числах меньшей длины алгоритм не даёт существенного преимущества из-за большего, чем в наивном алгоритме, числа требуемых сложений, вычитаний и сдвигов.
  2. С. А. Гриценко, Е. А. Карацуба, М. А. Королёв, И. С. Резвякова, Д. И. Толев, М. Е. Чанга. Научные достижения Анатолия Алексеевича Карацубы // Математика и информатика, 1, К 75-летию со дня рождения Анатолия Алексеевича Карацубы, Совр. пробл. матем., 16, МИАН, М., 2012, 7–30.
  3. Карацуба Е. А. Быстрые алгоритмы и метод БВЕ Архивная копия от 4 ноября 2012 на Wayback Machine, 2008.
  4. Алексеев В. Б. От метода Карацубы для быстрого умножения чисел к быстрым алгоритмам для дискретных функций // Тр. МИАН. — 1997. — Т. 218. — С. 20–27.
  5. Карацуба А., Офман Ю. Умножение многозначных чисел на автоматах // Доклады Академии Наук СССР. — 1962. — Т. 145, № 2.
  6. Karacuba A. Berechnungen und die Kompliziertheit von Beziehungen (нем.) // Elektronische Informationsverarbeitung und Kybernetik. — 1975. — Bd. 11.
  7. Карацуба А. А. Сложность вычислений // Тр. МИАН. — 1995. — Т. 211. — С. 186–202.
  8. Кнут Д. Искусство программирования. — 3-е изд. — М.: , 2007. — Т. 2. Получисленные алгоритмы. — 832 с. — ISBN 0-201-89684-2.
  9. А. Шень. Gauss multiplication trick? // Математическое Просвещение. — 2019. — Т. 24. Архивировано 21 января 2022 года.
  10. Сдвигом называется умножение или деление числа на целую степень основания системы счисления, «дописывание нулей».

Ссылки


Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Умножение Карацубы, Что такое Умножение Карацубы? Что означает Умножение Карацубы?

Umnozhenie Karacuby metod bystrogo umnozheniya pozvolyayushij peremnozhat dva n displaystyle n znachnyh chisla s bitovoj vychislitelnoj slozhnostyu T n O nlog2 3 displaystyle T n O n log 2 3 Izobretyon Anatoliem Karacuboj v 1960 godu Yavlyaetsya istoricheski pervym algoritmom umnozheniya prevoshodyashim trivialnyj po asimptoticheskoj slozhnosti IstoriyaV 1960 godu Kolmogorov provodil seminar posvyashyonnyj matematicheskim zadacham kibernetiki Odnoj iz rassmatrivaemyh na seminare zadach stalo umnozhenie dvuh n displaystyle n razryadnyh celyh chisel Osnovnym izvestnym metodom umnozheniya v to vremya bylo umnozhenie v stolbik kotoroe pri algoritmicheskoj realizacii trebovalo O n2 displaystyle O n 2 elementarnyh operacij slozhenij ili umnozhenij odnorazryadnyh chisel Kolmogorov vydvinul gipotezu chto umnozhenie v stolbik yavlyaetsya optimalnym algoritmom umnozheniya dvuh chisel v tom smysle chto vremya raboty lyubogo metoda umnozheniya ne menshe n2 displaystyle n 2 po poryadku velichiny Na pravdopodobnost gipotezy n2 displaystyle n 2 ukazyvalo to chto metod umnozheniya v stolbik izvesten ne menee chetyryoh tysyacheletij i esli by byl bolee bystryj metod umnozheniya to on veroyatno uzhe byl by najden Odnako cherez nedelyu 23 letnij Karacuba predlozhil novyj metod umnozheniya dvuh n displaystyle n znachnyh chisel s ocenkoj vremeni raboty O nlog2 3 displaystyle O n log 2 3 i tem samym oproverg gipotezu n2 displaystyle n 2 Metod Karacuby otnositsya k algoritmam vida razdelyaj i vlastvuj naravne s takimi algoritmami kak dvoichnyj poisk bystraya sortirovka i dr Formuly rekursivnogo svedeniya ispolzuemye v metode Karacuby byli izvestny eshyo Charlzu Bebbidzhu kotoryj odnako ne obratil vnimaniya na vozmozhnost ispolzovaniya lish tryoh rekursivnyh umnozhenij vmesto chetyryoh AlgoritmSravnenie algoritma Karacuby i umnozheniya v stolbik Vnizu shematicheski pokazano derevo rekursivnyh vyzovov algoritma dlya vsyo menshih i menshih chisel Kolichestvo vershin na poslednem ego urovne sootvetstvuet kolichestvu elementarnyh umnozhenij Vidno chto u algoritma Karacuby shirina dereva rastyot znachitelno medlennee Dva n displaystyle n bitovyh chisla mozhno predstavit v vide ax b displaystyle ax b cx d displaystyle cx d gde x 2 n 2 displaystyle x 2 lceil n 2 rceil i a b c d lt 2 n 2 displaystyle a b c d lt 2 lceil n 2 rceil Umnozhenie na 2 n 2 displaystyle 2 lceil n 2 rceil bitovyj sdvig i slozhenie delayutsya za postoyannoe vremya O 1 displaystyle O 1 Poetomu zadacha umnozheniya svoditsya k vychisleniyu koefficientov mnogochlena ax b cx d displaystyle ax b cx d Ispolzuya tozhdestvo a b c d ac ad bc bd displaystyle color green a b c d color red ac color darkorange ad bc color blue bd etot mnogochlen mozhno predstavit v vide ax b cx d acx2 ad bc x bd displaystyle ax b cx d color red ac x 2 color darkorange ad bc x color blue bd acx2 a b c d ac bd x bd displaystyle color red ac x 2 color darkorange Big color green a b c d color red ac color blue bd color darkorange Big x color blue bd V poslednem vyrazhenii uchastvuyut tri proizvedeniya n2 1 displaystyle left left lceil frac n 2 right rceil 1 right znachnyh chisel Esli vychislyat kazhdoe iz nih po toj zhe sheme poluchitsya algoritm s rekurrentnoj ocenkoj vremeni raboty T n 3T n2 O n O nlog2 3 displaystyle T n 3T left frac n 2 right O n O left n log 2 3 right Dlya sravneniya analogichnyj algoritm proizvodyashij otdelno vse chetyre umnozheniya ac displaystyle ac ad displaystyle ad bc displaystyle bc bd displaystyle bd treboval by obychnogo vremeni T n 4T n2 O n O nlog2 4 O n2 displaystyle T n 4T left frac n 2 right O n O left n log 2 4 right O left n 2 right PrimeryDlya umnozheniya dvuh vosmiznachnyh v desyatichnoj zapisi chisel N 11113333 displaystyle N 11113333 i M 55557777 displaystyle M 55557777 kazhdoe iz nih predstavlyaetsya v vide summy dvuh chisel vdvoe menshej razryadnosti odno iz kotoryh vzyato so sdvigom N 1111 10000 3333M 5555 10000 7777 displaystyle begin cases N 1111 cdot 10000 3333 M 5555 cdot 10000 7777 end cases Raskryvaya skobki proizvedenie N displaystyle N i M displaystyle M mozhno perepisat kak 1111 10000 3333 5555 10000 7777 1111 5555 100002 10000 1111 7777 5555 3333 3333 7777 displaystyle 1111 cdot 10000 3333 5555 cdot 10000 7777 1111 cdot 5555 cdot 10000 2 10000 1111 cdot 7777 5555 cdot 3333 3333 cdot 7777 Karacuba nashyol chto vmesto chetyryoh umnozhenij vdvoe bolee korotkih chisel mozhno delat lish tri 1111 5555 displaystyle 1111 cdot 5555 1111 3333 5555 7777 displaystyle 1111 3333 cdot 5555 7777 i 3333 7777 displaystyle 3333 cdot 7777 v rezultate chego vyrazhenie preobrazuetsya k vidu 1111 5555 100002 10000 1111 3333 5555 7777 1111 5555 3333 7777 3333 7777 displaystyle 1111 cdot 5555 cdot 10000 2 10000 1111 3333 cdot 5555 7777 1111 cdot 5555 3333 cdot 7777 3333 cdot 7777 Dlya umnozheniya ukorochennyh vdvoe chisel primenyaetsya tot zhe algoritm 1111 5555 displaystyle 1111 cdot 5555 predstavlyaetsya kak 11 100 11 55 100 55 displaystyle 11 cdot 100 11 55 cdot 100 55 i tak dalee Na praktike dlya dostatochno korotkih chisel primenyaetsya uzhe obychnoe umnozhenie kak bolee effektivnoe Podhod rabotaet v lyuboj sisteme schisleniya v tom chisle i v dvoichnoj ispolzuemoj vychislitelnoj tehnikoj Naprimer vychislenie proizvedeniya dvuh 4096 bitnyh dvoichnyh chisel metodom Karacuby trebuet 312 5 3 105 displaystyle 3 12 approx 5 3 cdot 10 5 elementarnyh odnobitovyh umnozhenij vmesto 212 2 1 68 107 displaystyle 2 12 2 approx 1 68 cdot 10 7 pri umnozhenii naivnym metodom PrimechaniyaNa praktike algoritm stanovitsya effektivnee obychnogo umnozheniya pri umnozhenii chisel dlinoj poryadka soten dvoichnyh desyatkov desyatichnyh razryadov na chislah menshej dliny algoritm ne dayot sushestvennogo preimushestva iz za bolshego chem v naivnom algoritme chisla trebuemyh slozhenij vychitanij i sdvigov S A Gricenko E A Karacuba M A Korolyov I S Rezvyakova D I Tolev M E Changa Nauchnye dostizheniya Anatoliya Alekseevicha Karacuby Matematika i informatika 1 K 75 letiyu so dnya rozhdeniya Anatoliya Alekseevicha Karacuby Sovr probl matem 16 MIAN M 2012 7 30 Karacuba E A Bystrye algoritmy i metod BVE Arhivnaya kopiya ot 4 noyabrya 2012 na Wayback Machine 2008 Alekseev V B Ot metoda Karacuby dlya bystrogo umnozheniya chisel k bystrym algoritmam dlya diskretnyh funkcij Tr MIAN 1997 T 218 S 20 27 Karacuba A Ofman Yu Umnozhenie mnogoznachnyh chisel na avtomatah Doklady Akademii Nauk SSSR 1962 T 145 2 Karacuba A Berechnungen und die Kompliziertheit von Beziehungen nem Elektronische Informationsverarbeitung und Kybernetik 1975 Bd 11 Karacuba A A Slozhnost vychislenij Tr MIAN 1995 T 211 S 186 202 Knut D Iskusstvo programmirovaniya 3 e izd M 2007 T 2 Poluchislennye algoritmy 832 s ISBN 0 201 89684 2 A Shen Gauss multiplication trick rus Matematicheskoe Prosveshenie 2019 T 24 Arhivirovano 21 yanvarya 2022 goda Sdvigom nazyvaetsya umnozhenie ili delenie chisla na celuyu stepen osnovaniya sistemy schisleniya dopisyvanie nulej Ssylkihttp 212 cmc msu ru files kniga html http numbers computation free fr Constants Algorithms representation html http www 2 cs cmu edu cburch 251 karat http www cs pitt edu kirk cs1501 animations http www ccas ru personal karatsuba divcru htm http www ccas ru personal karatsuba alg htm

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто