WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Алгоритм Бурникеля — Циглера (нем. Burnikel-Ziegler-Verfahren) — быстрый алгоритм деления больших целых чисел, описанный Кристофом Бурникелем и Йоахимом Циглером в 1998 году[1]. Алгоритм позволяет вычислить и частное, и остаток от деления.

Описание

Ядром метода являются алгоритмы и , которые делят числа длинами , , , . Алгоритмы вызывают друг друга рекурсивно, с каждым шагом сокращая длину числителя на 1/4 и 1/3 соответственно[1]. Алгоритм в числе прочего производит умножение, поэтому его быстродействие можно увеличить использованием методов быстрого умножения (см. ниже).

Вычислительная сложность

Вычислительная сложность алгоритма зависит от используемого при расчётах метода умножения. Если при расчётах используется алгоритм, вычислительная сложность которого составляет , например, алгоритм Карацубы или Тоома — Кука[en], то сложность алгоритма Бурникеля — Циглера будет также составлять . Если в вычислениях используется метод умножения Шёнхаге — Штрассена с , то сложность деления составит [1]:11

На практике алгоритм Бурникеля — Циглера быстродейственнее деления столбиком и алгоритма Барретта[en] для чисел, количество десятичных разрядов в которых лежит между приблизительно 250 и 1,5 млн.[1]:22

Применение

Алгоритм Бурникеля — Циглера используется в библиотеках Java версии 8[2] и GMP[3].

Примечания

  1. 1 2 3 4 Christoph Burnikel; Joachim Ziegler. Fast Recursive Division (англ.). Max-Planck-Institut für Informatik (October 1998). Проверено 27 июня 2014.
  2. JDK-8014319 : Faster division of large integers (англ.). Oracle. Проверено 27 июня 2014.
  3. Divide and Conquer Division (англ.). gmplib.org. Проверено 27 июня 2014.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии