所以我使用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;这不应该对渐近线产生实际影响。
答案 0 :(得分:1)
我不同意你的评价。
长乘法的成本取决于使用的算法。可以是O(n ^ 1.585)[Karatsuba],或O(n.Log(n).Log(Log(n)))[Schönhage-Strassen]或其他。
取幂的代价可以是O(Log(n))乘以指数n。