高斯4次乘法化为3次乘法
来源:互联网 发布:权力的游戏山姆知乎 编辑:程序博客网 时间:2024/05/18 03:28
设两个复数a + bi,c + di。我们先来看三个辅助的量t1 = (a - b) * (c + d),t2 = a * d,t3 = b * c。两个复数相乘的结果实部为a * c – b * d,虚部为a * d + b * c。而实部可以表示为t1 – t2 + t3,虚部可以表示为t2 + t3。这样就可以用三次乘法完成复数相乘了。其思想是用加减代替了乘法。
好了让我们再看看上面的4次乘法,如法炮制:f1 = 2^(n/2)(xL + xR) * (yL + yR),f2 = xL * yL,f3 = xR * yR。
则x * y = f1 – 2^(n/2) f2 + f2 - 2^(n/2) f3 + f3。
这样我们就只做了3次规模为n/2的乘法,即3/4*n^2,这样的结果还比较满意,也许你觉得这样的优化微不足道,但我们可以一直这么分下去,最后得到递推表达式:T(N) = 3T(n/2) + O(n)。当n趋于无穷大时你会发现时间复杂度降到了O(n^lg3),这已经非常可观了,高斯果然牛X。
0 0
- 高斯4次乘法化为3次乘法
- c++第4次实验-乘法口诀表
- C++第四次实验-项目3:乘法口诀表
- c++上机第四次实验-【项目3:乘法口诀表】
- HDU4059 The Boss on Mars【容斥原理】【乘法逆元】【高次求和】
- C++第4次实验(基础班)—循环结构程序设计(参考答案)-项目3:乘法口诀表
- C++第四次实验——乘法口诀表
- c++第四次实验-项目三:乘法口诀
- 贝塞尔三次方曲线优化, 24次乘法转换成6次加法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- 乘法
- ContentProvider中的多表查询
- Struts2常用标签总结
- 关于document.cookie的使用
- 风趣的讲解block的回调
- 微信开发
- 高斯4次乘法化为3次乘法
- jQuery formValidator
- 京东广告典型源码示例二
- JFFS2 文件系统及新特性介绍
- 实现textarea限制输入字数
- java中的用户名和密码加密保存到txt文件中
- gitHub无法访问问题
- 关于:清除并发请求和(或)管理器数据 请求的理解
- IOS获取文件/文件夹大小