【问题标题】:Runtime of Binet's Formula比内公式的运行时间
【发布时间】:2012-02-15 01:47:14
【问题描述】:

所以我正在使用 Binet 公式和 GNU MP 库来计算斐波那契数。我正在尝试计算算法的渐近运行时间。

对于 Fib(n),我将变量设置为 n 位精度;因此我相信将两个数字相乘是 n Log(n)。求幂是,我相信 n Log(n) 乘法;所以我相信我有 n Log(n)Log(n Log(n))。这是正确的,无论是在假设(乘以浮点数和乘以指数乘以整数指数)和结论?

如果我的精度很高,并且我使用精度 g(n);然后我认为这减少到 g(n) Log(g(n));但是我认为 g(n) 应该是 g(n)=n Log(phi)+1;这不应该对渐近线产生真正的影响。

【问题讨论】:

  • 计算只涉及乘法和取幂对吗? exp(x * log(\phi)) (保留预先计算的 log(\phi) )。
  • 您正在使用n 来表示一个数字及其位数:|

标签: algorithm runtime


【解决方案1】:

我不同意你的评价。

长乘法的成本取决于使用的算法。可以是 O(n^1.585) [Karatsuba],或 O(n.Log(n).Log(Log(n))) [Schönhage–Strassen],或其他。

求幂的成本可以为指数 n 的 O(Log(n)) 倍。

【讨论】:

    猜你喜欢
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2012-12-26
    相关资源
    最近更新 更多