大整数相乘时间优化
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方法。
将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方法。
相关文章推荐
- 剑指offer-第五章优化时间和空间效率(从1到n的整数中1出现的次数)
- 找出满足a+b+c=n(n为正整数)的所有毕达哥拉斯元组(a,b,c)【python实现,时间复杂度优化】
- 大整数相乘
- Linux启动时间的极限优化
- 【优化2】整数优化
- vue-cli项目优化,缩短首屏加载时间(二)
- 优化网站响应时间
- 大整数相乘
- 时间优化的算法题
- 用android的GCM 网络管理来优化电池使用时间
- Uva - 10106 - 大整数相乘
- 大整数相乘
- 打包时间统计功能优化
- 设有n项任务,加工时间分别表示为正整数t1,t2,...,tn。背包问题系列
- Kernel启动时间优化
- mysql根据时间查询日期的优化
- 提供可靠、高性能的Socket Tcp组件 .NET 程序优化不要仅仅盯着代码执行时间
- 整数的输入优化
- 输入任意一正整数,输入该数的质数相乘的形式
- 编程珠玑之第一章习题3:度量100w整数排序的运行时间