フィボナッチ数目は、次の再発を用いて線形時間で計算することができます。
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
フィボナッチ数番目はまた、計算することができる[ φ N / √。ただし、これにはnが比較的小さい場合でも丸めの問題があります。おそらくこれを回避する方法はありますが、私はそれをやめたいです。
浮動小数点演算に依存しないn番目のフィボナッチ数を計算するための効率的な(値以上の対数)アルゴリズムはありますか?整数演算(+、−、×、/)を一定の時間で実行できると仮定します。
5
提案として、フィボナッチ数に関するウィキペディアの記事には多くの方法があります。
—
仮名
cf. stackoverflow.com/questions/14661633/…およびその中と周辺のリンク。
—
ウィルネス