В настоящее время я делаю свой собственный класс BigInt, разбивая числа на 7 цифр. (то есть в базе 10 000 000)
Я реализовал сложение, вычитание и умножение, и теперь я реализую деление и мод. Я написал код, который выполняет деление на длинное деление (оценка чисел путем деления наиболее значимых цифр), и он работает.
Однако он слишком медленный. Когда я тестирую операции с 108-значным числом и 67-значным числом, для вычисления деления требуется 1,9 мс, гораздо медленнее других операций (0,007-0,008 мс для вычисления сложения/вычитания, 0,1 мс для вычисления умножения).
Как и алгоритм Карацубы и БПФ для быстрого умножения, какой алгоритм существует для вычисления деления? Wikipedia демонстрирует некоторые алгоритмы деления (который вычисляет мультипликативный инверсный делитель и умножает его на дивиденд), но я думаю, что это не помогает мне значительно реализовать деление. Я также читал разделы "Большие целые методы", но это тоже не помогает...: (