2010-07-08 52 views
0

设a,b为n位数的两个整数。 我想知道a的平方的计算时间是否比a * b短。乘法计算时间的比较

谢谢你的帮助。

+0

我不明白它会是什么;只要a和b具有相同的大小(以位为单位,而不是数字)。当然,要知道的唯一方法就是以此为基准。 – quantumSoup 2010-07-08 03:37:11

+0

如果我被允许工作在base-n,计算n^2是微不足道的。 – 2010-07-08 03:57:52

回答

1

我不认为有一种方法可以在x86上使用IMUL而不使用IMUL。我可能是错的。

要找出需要多长时间,microbenchmark它!

编辑:哦,等等,我明白了!一个b需要两个内存读取和一个 a需要一个!所以a *更快:-)。

正确答案:没有理由a * b会变慢,除非你有一些外界因素影响事物。

1

我认为你的问题是:

*让A,B是两个整数用n个数字。我想知道计算a的平方的计算时间是否比计算a * b的计算时间短。*

如果n足够大以至于不能只使用单个乘法指令,那么任何算法知道可以利用这两个因素相同的事实。对于您在学校学到的算法而言,这是事实,因为几乎一半数字的乘积不需要相乘。在非常大的n的极端,使用与FFT的卷积,这两个因子的FFT对于正方形是相同的,并且只需要计算一次。