Алгоритм Бурникеля — Циглера (нем. Burnikel-Ziegler-Verfahren) — быстрый алгоритм деления больших целых чисел, описанный Кристофом Бурникелем и Йоахимом Циглером в 1998 году[1]. Алгоритм позволяет вычислить и частное, и остаток от деления.
Ядром метода являются алгоритмы и , которые делят числа длинами , , , . Алгоритмы вызывают друг друга рекурсивно, с каждым шагом сокращая длину числителя на 1/4 и 1/3 соответственно[1]. Алгоритм в числе прочего производит умножение, поэтому его быстродействие можно увеличить использованием методов быстрого умножения (см. ниже).
Вычислительная сложность алгоритма зависит от используемого при расчётах метода умножения. Если при расчётах используется алгоритм, вычислительная сложность которого составляет , например, алгоритм Карацубы или Тоома — Кука[en], то сложность алгоритма Бурникеля — Циглера будет также составлять . Если в вычислениях используется метод умножения Шёнхаге — Штрассена с , то сложность деления составит [1]:11
На практике алгоритм Бурникеля — Циглера быстродейственнее деления столбиком и алгоритма Барретта[en] для чисел, количество десятичных разрядов в которых лежит между приблизительно 250 и 1,5 млн.[1]:22
Алгоритм Бурникеля — Циглера используется в библиотеках Java версии 8[2] и GMP[3].
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .