现在要计算两个 位二进制数 和 的乘积,这是为了方便描述,一下算法可以直接应用到任意进制的情况。
我们的计算机每次仅可以对一位二进制位进行操作,我们的复杂度也是在这样的机器上进行计算的。
Karatsuba
型算法时期Karatsuba
算法Karatsuba
提出了第一个能在低于 的时间内计算整数乘法的算法去,其复杂度为 。
不妨设 是偶数,把 表示为 b$ 为 。
而其中
于是我们只需要计算 三个乘法即可。
复杂度:。
Toom-Cook
算法Karatsuba
算法观察 Karatsuba
算法 的本质:计算二次多项式 在 这 处的点值,然后还原。
根据这个思路,我们可以把 写成 ,那么 就是一个 次多项式,我们需要求出 个点值。
其中 为拉格朗日插值时需要付出的代价。
取 ,可以做到 。
Cooley-Tukey
算法施工中。。。
https://www.cnblogs.com/Elegia/p/18020040/integer-multiplication