【问题标题】:Time efficiency of Power operation?Power 操作的时间效率?
【发布时间】:2013-05-22 02:00:24
【问题描述】:

我只是想知道电源操作及其时间效率。由于幂运算是有效的:

x^n = x*x*x...[n times]

这是否意味着计算 x^n 大约需要 O(n) 时间(假设乘法是 O(1),我不确定是不是这样)?或者现代编程语言/硬件架构是否有优化,可以将其减少到 O(1) 或类似的东西?如果存在优化,请解释(或发布解释链接)。

【问题讨论】:

    标签: performance optimization language-agnostic mathematical-optimization processing-efficiency


    【解决方案1】:

    有一个基于successive squaring 的优化,允许您以对数乘法计算幂。例如,不用将 b8 计算为 b*b*b*b*b*b*b*b,您可以计算

    b2 = b * b
    b4 = b2 * b2
    b8 = b4 * b4

    有关详细信息,请参阅SICP 1.2.4 求幂。我的博客上也有一篇文章,显示了 Scheme 中的 fast exponentiation 实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 2019-04-12
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2010-09-26
      • 2013-11-14
      相关资源
      最近更新 更多