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