栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么对数字进行平方运算要比对两个随机数相乘更快?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么对数字进行平方运算要比对两个随机数相乘更快?

  1. 存在比O(N ^ 2)效率更高的算法,可以将两个数字相乘(请参阅Karatsuba,Pollard,Schönhage–Strassen等)。

  2. 两个问题“乘以两个任意的N位数字”和“平方一个任意的N位数字”具有相同的复杂度。

我们有

4*x*y = (x+y)^2 - (x-y)^2

因此,如果对N位整数进行平方运算需要O(f(N))时间,那么也可以在O(f(N))中获得两个任意N位整数的乘积。(即2x N位和,2x N位平方,1x
2N位和和1x 2N位移位)

显然,我们有

x^2 = x * x

因此,如果将两个N位整数相乘需要O(f(N)),则可以在O(f(N))中对N位整数进行平方。

任何计算乘积(重平方)的算法都提供了一种算法,以相同的渐近成本计算平方(重平方)。

如其他答案所述,在平方的情况下,可简化用于快速乘法的算法。增益将取决于f(N)前面的常数,而不取决于f(N)本身。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号