我正在制作自己的BigInt类,通过将数字按7位数分割(即在基数10,000,000中)。
我已经实现了加法、减法和乘法,现在正在实现除法和模运算。我编写了一段代码,通过长除法(通过除以最高位数字估计数字)执行除法,并且它可以工作。
然而,它太慢了。当我测试一个108位数字和一个67位数字的操作时,计算除法需要1.9毫秒,比其他操作慢得多(计算加法/减法需要0.007~0.008毫秒,计算乘法需要0.1毫秒)。
像Karatsuba和FFT算法用于快速乘法一样,有哪些算法可用于计算除法?Wikipedia演示了一些除法算法(计算除数的乘法逆元并将其与被除数相乘),但我认为这对我实现除法没有什么帮助。我也阅读了“大整数方法”部分,但那对我也没有帮助... :(