大数乘法用FFT算的话效率肯定可以比常规的方法要高很多,尤其是位数非常高的时候。原理我可以简单说说:
1、两个数相乘,如果对两个乘数调整一下的话,其积可以写成原乘数各位数字序列的卷积形式。
2、时域上的卷积,就是频域上的点乘。
3、剩下的自己发挥。
详细原理推导和代码网上应该有很多。如果乘法位数非常高的话甚至还可以考虑用多线程或CUDA加速。
1、两个数相乘,如果对两个乘数调整一下的话,其积可以写成原乘数各位数字序列的卷积形式。
2、时域上的卷积,就是频域上的点乘。
3、剩下的自己发挥。
详细原理推导和代码网上应该有很多。如果乘法位数非常高的话甚至还可以考虑用多线程或CUDA加速。