您的位置:首页 > 其它

大整数相乘时间优化

2007-06-10 00:29 288 查看
       假设u,v为两个n bits整数 ,传统的整数相乘复杂度为n2的同阶,采用分治可将时间复杂度减少为nlog3.

       将u,v分为两部分,每部分n/2 bits.

     u:   |--w--|--x--|

     v:    |--y--|--z--|

则:

      u = w<< 2n/2 + x

      v = y<< 2n/2 + z

      u * v = wy<<n + (wz + xy)<<n/2 +  xz

              = wy<<n + [(w + x)(y + z) - wy - xz]<<n/2 + xz

       处理后需要计算3次n/2乘法

则时间复杂度: T(n) = 3T(n/2) + bn

利用master theorem可得。

矩阵相乘也可采用类似strassen方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  优化