整数乘法5T(n / 3)

时间:2014-10-06 14:04:42

标签: algorithm discrete-mathematics

x和y有n位

x=x0*(10^2n/3)+x1*10^n/3+x2 y=y0*(10^2n/3)+y1*10^n/3+y2

x*y=x2y2+(x2y1+x1y2)10^n/3+(x2y0+x1y1+x0y2)10^2n/3+(x1y0+x0y1)10^n+x0y0*10^4n/3

现在9个n / 3位数的乘法运行时间为9T(n / 3),即O(n ^ 2)

像Karatsuba的倍增法这样的小技巧

首先计算x0y0,x1y1和x2y2这是n / 3位数的3次乘法

然后使用x0y0,x1y1和x2y2来计算其他跟随:x2y1 + x1y2 =(x1 + x2)(y1 + y2)-x1y1-x2y2 - >> 1乘以n / 3比特数x2y1 + x1y1 + x0y2 =(x0 + x2)(y0 + y2)-x0y0-x2y2 + x1y1 - >> 1乘以n / 3位数x1y0 + x0y1 =(x0 + x1)(y0 + y1)-x0y0-x1y1 1乘以n / 3位数 递归地解决6个子问题并将它们组合起来 在O(n) - 数字上增加了7个。 现在总共需要6个n / 3位数运行时间6T(n / 3)

如何将其减少到5倍而不是6?

0 个答案:

没有答案