Binet公式的运行时间

时间:2012-02-15 01:47:15

标签: algorithm runtime

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

对于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;这不应该对渐近线产生实际影响。

1 个答案:

答案 0 :(得分:1)

我不同意你的评价。

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

取幂的代价可以是O(Log(n))乘以指数n。