Как реализовать (быстрое) деление bigint?

В настоящее время я делаю свой собственный Класс BigInt, разбивая числа на 7 цифр (т.е. по основанию 10 000 000)

Я реализовал сложение, вычитание и умножение, а теперь я реализую деление и модификацию. Я написал код, который выполняет деление в столбик (оценка чисел путем деления наиболее значимых цифр), и это работает.

Однако это слишком медленно. Когда я тестирую операции над 108-значным числом и 67-значным числом, вычисление деления занимает 1,9 мс, что намного медленнее чем другие операции (0,00 7 ~ 0,008 мс для вычисления сложения / вычитания, 0,1 мс для вычисления умножения).

Как алгоритм Карацубы и БПФ для быстрого умножения, какой алгоритм существует для вычисления деления? Википедия демонстрирует некоторые алгоритмы деления (которые вычисляют мультипликативную обратную величину делителя и умножают ее на делимое), но я думаю, что это не очень помогает мне в реализации деления. Я тоже читал разделы «Большие целочисленные методы», но мне это тоже не помогает ...: (

18
задан JiminP 16 January 2012 в 17:07
поделиться