关于Fibonacci数所需的位数

ven*_*rty 3 algorithm

我正在阅读S.DasGupta的算法书.以下是有关第n个Fibonacci数所需位数的文本的文本片段.

如果添加小数字,将加法视为单个计算机步骤是合理的,32位数字表示.但是第n个Fibonacci数约为0.694n位,随着n的增长,这可能远远超过32.对任意大数的算术运算不可能在单个恒定时间步骤中执行.

我的问题是例如,对于Fibonacci数F1 = 1,F2 = 1,F3 = 2,依此类推.然后用上面的公式中的"n"代替,即F1的0.694n约为1,F2约为2位,但对于F3等,上述公式失败.我想我并不理解作者在这里的意思,任何人都可以帮助我理解这一点吗?

谢谢

Ste*_*sop 7

好,

n              3    4     5     6     7     8
0.694n         2.08 2.78  3.47  4.16  4.86  5.55
F(n)           2    3     5     8     13    21
bits           2    2     3     4     4     5
log(F(n))      1    1.58  2.32  3     3.7   4.39
Run Code Online (Sandbox Code Playgroud)

所需的位数是基数2日志的四舍五入,所以这对我来说足够接近.

值0.694来源于以下事实F(n)是最接近整数(φ Ñ)/√5.所以log(F(n))n * log(phi) - log(sqrt(5)),并且log(phi)是0.694.随着n变得越来越大,log(sqrt(5))四舍五入迅速变得微不足道.