首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >N位加法和乘法的有效时间复杂度

N位加法和乘法的有效时间复杂度
EN

Stack Overflow用户
提问于 2022-06-21 16:53:24
回答 1查看 138关注 0票数 0

我已经完成了一门关于计算机体系结构的课程,在n位结构字大小最有效的处理器上,加/减两个字的时间复杂度为O(log n),乘法/除法的时间复杂度为O(n)

如果不考虑任何特定的体系结构字大小,加减法的最佳时间复杂度是O(n) (https://www.academia.edu/42811225/Fast_Arithmetic_Speeding_up_Multiplication_Division_and_Addition_of_n_Bit_Numbers),乘法/除法似乎是O(n log n log log n) (Strassen https://en.m.wikipedia.org/wiki/Multiplication_algorithm)。

这是正确的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-21 17:33:21

O(log )是加法的延迟,如果您可以使用n位宽的并行硬件,包括进位选择或进位向前看。

O(n)是需要做的工作量的总和,因此当n趋于无穷时,具有固定宽度ALU的任意双元问题的时间复杂度。

对于乘法,n位乘法中有n个部分乘积,因此将它们全部相加(例如,Dadda树)的顺序是延迟的O(log )门延迟。整数加法是相联的,所以你可以并行地做这件事,例如(a+b) + (c+d)是3,延迟为2,从那里得到更好的结果。

Dadda树可以避免一些进位传播延迟,所以我想它避免了如果单独使用每个部分乘积的正常加法,就会得到log的额外因素。

有关大型Dadda树的实用注意事项,请参见Differences between Wallace Tree and Dadda Multipliers

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72704496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档