Метод умножения Шёнхаге

Метод умножения Шёнхаге

Метод умножения Шёнхаге — Штрассена (англ. Schönhage–Strassen algorithm) — быстрый метод умножения больших целых чисел. Основной идеей алгоритма является быстрое преобразование Фурье. Он был построен Арнольдом Шёнхаге и Фолькером Штрассеном в 1971 году.[1] Метод требует O(N·logN·log logN) битовых операций, где N — количество двоичных цифр в произведении.[2]

Фактически, метод Шёнхаге — Штрассена является методом умножения многочленов от одной переменной. Он превращается в алгоритм умножения чисел, если эти числа представить как многочлены от основы системы счисления, а после получения результата сделать переносы через разряды. Например, для перемножения 157 и 171 (в десятичной системе счисления) мы выполняем следующие операции.

  • Представляем 157 как x²+5x+7, а 171 — как x²+7x+1, где x=10.
  • Перемножаем многочлены x²+5x+7 и x²+7x+1 с помощью быстрого преобразования Фурье. Получаем x4+12x³+43x²+54x+7.
  • Делая переносы через разряды, получаем 2x4+6x³+8x²+4x+7, то есть 26847.

Также в алгоритме Шёнхаге — Штрассена можно умножать по модулю чисел Ферма 2^{2^n}+1, если применять двоичную систему счисления.

Метод Шёнхаге — Штрассена считался асимптотически быстрейшим методом с 1971 до 2007 годы, пока не был заявлен новый метод с лучшей оценкой сложности умножения.[3] На практике метод Шёнхаге — Штрассена начинает превосходить более ранние классические методы, такие как умножение Карацубы и алгоритм Тоома — Кука (обобщение метода Карацубы), начиная с целых чисел порядка 1010000—1040000 (от 10 000 до 40 000 десятичных знаков).[4][5][6]

Примечания

  1. Schönhage A., Strassen V. Schnelle Multiplikation großer Zahlen // Computing. — 1971. — № 7. — P. 281—292.
  2. Bürgisser P., Clausen M., Shokrollahi A. Algebraic Complexity Theory. — Berlin: Springer-Verlag, 1997. — 618 p. — ISBN 3-540-60582-7.
  3. Fürer M. Faster integer multiplication // STOC 2007 Proceedings. — 2007. — P. 57—66.
  4. Meter van R., Itoh K. M. Fast quantum modular exponentiation // Physical Review A. — 2005. — Т. 71.
  5. Overview of Magma V2.9 Features, arithmetic section: Discusses practical crossover points between various algorithms.
  6. Coronado García L. C. Can Schönhage multiplication speed up the RSA encryption or decryption? // University of Technology. — Darmstadt, 2005.

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Метод умножения Шёнхаге" в других словарях:

  • Метод умножения Шёнхаге — Штрассена — Метод умножения Шёнхаге  Штрассена (англ. Schönhage–Strassen algorithm)  это асимптотически быстрый метод умножения для больших целых чисел. Является обобщением метода Карацубы с применением Быстрого Преобразования Фурье и умножения по… …   Википедия

  • Метод умножения Шёнхаге-Штрассена — это асимптотически быстрый метод умножения для больших целых чисел. Он был построен Арнольдом Шёнхаге и Фолькером Штрассеном в 1971.[1] Битовая сложность метода есть , а арифметическая сложность .[2] Этот метод использует быстрые преобразования… …   Википедия

  • Алгоритм Фюрера — (англ. Fürer’s algorithm)  быстрый метод умножения больших целых чисел. Алгоритм был построен в 2007 году швейцарским математиком Мартином Фюрером[1] из университета штата Пенсильвания как асимптотически более быстрый алгоритм, чем его… …   Википедия

  • Умножение Карацубы — метод быстрого умножения, который позволяет перемножать два n значных числа со сложностью вычисления: Этот подход открыл новое направление в вычислительной математике [1][2]. Содержание 1 История …   Википедия

  • Карацуба — Карацуба, Анатолий Алексеевич Карацуба Анатолий Алексеевич Дата рождения: 31 января 1937(1937 01 31) …   Википедия

  • Карацуба, Анатолий Алексеевич — Карацуба Анатолий Алексеевич Дата рождения: 31 января 1937 …   Википедия

  • Список алгоритмов — Эта страница информационный список. Основная статья: Алгоритм Ниже приводится список алгоритмов, группированный по категориям. Более детальные сведения приводятся в списке структур данных и …   Википедия

  • Быстрые алгоритмы — Значимость предмета статьи поставлена под сомнение. Пожалуйста, покажите в статье значимость её предмета, добавив в неё доказательства значимости по частным критериям значимости или, в случае если частные критерии значимости для… …   Википедия

  • Быстрое умножение — Быстрое умножение  общее название для нескольких быстрых алгоритмов умножения больших чисел. Методы быстрого умножения послужили толчком к развитию отдельной области информатики, занимающейся быстрыми алгоритмами. История …   Википедия

  • Тест Люка — Тест Люка  Лемера  эффективный тест простоты для чисел Мерсенна. Благодаря этому тесту самые большие простые числа всегда были числами Мерсенна даже задолго до появления компьютеров.[1] Содержание 1 История 2 Тест 3 …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»