計算量が減らない!?(フィボナッチ数列の公式の変形)

フィボナッチ数列の公式は下記のようなものだと言う。
Fn=\frac{1}{sqrt5}[(\frac{1+sqrt5}{2})^n-(\frac{1-sqrt5}{2})^n]
で、これを、無理数、ありていに言えばsqrt5を使わず、整数を扱うだけで計算できるか試みた*1
その結果、このように変形できた。

  1. Fn+1=FnF1+5GnG1(F1=1)
  2. Gn+1=FnG1+GnF1(G1=1)
  3. Hn+1=2Hn(H1=1)
  4. Fibonachi n=\frac{Gn}{Hn}

1〜3までを計算すれば、フィボナッチ数列が出ると言うことなんだが、1〜3のどれもがナイーブに実装すると計算量問題に引っかかるような式になっている。こんなことするくらいなら、フィボナッチ数列自体をナイーブに実装してメモイゼーションした方が3倍ほどマシであろうに。なんともはや。
1〜3をさらに公式化できればオーケーなんだろうけど、えーと、もう高校数学なんか忘れたなあ。どうやってやるんだっけ?
http://d.hatena.ne.jp/maehara/20071201/1196497753
こちらでも指摘されているが。

追記:乗算回数も同じくらい.従って上と計算量はやはり変わらない.

結局、公式を使ったとしても乗算が含まれるので、そこで計算量問題に引っかかると言うのは(現時点で)正しいらしい。
これをどうにかしない限りは、計算量は減らせないっぽい。3番の式なんかは2^nってやってしまえば、最適化された組込関数が使える分早くなるだろうけど、たかが知れてるだろうしなあ。
なんかいいアイデアはないのか。

*1:なんで整数にこだわるかと言えば簡単ですね。はい、NScripterでの実装をにらんでのことです。とは言え、NScripterフィボナッチ数列が必要になることなんかあるのかと言う話も