テクニカル分析の基礎

フィボナッチ数列とは

フィボナッチ数列とは
さきほどのアルゴリズムでは n = 50 のフィボナッチ数を求めるには途方もなく時間がかりますが、このアルゴリズムでは一瞬です。おそらく n = 10000 でもまだ余裕です。n フィボナッチ数列とは = 100000 くらいになると少し遅くなってくるのではないでしょうか。

フィボナッチ数 -->

> > This page is based on a Wikipedia article written by contributors (read/edit).
Text is available under the CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.

Tell your friends about Wikiwand!

Suggest as cover photo

Would you like to suggest this photo as the cover photo for this article?

Thank you for helping!フィボナッチ数列とは

Your input will affect cover photo selection, along with input from other users.

Thanks for reporting this video!

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

An extension you use may be preventing Wikiwand articles from loading properly.


If you're using フィボナッチ数列とは HTTPS Everywhere or you're unable to access any article on Wikiwand, please consider switching to HTTPS (https://www.wikiwand.com).

An extension you use may be preventing Wikiwand articles from loading properly.

If you are using an Ad-Blocker, it might have mistakenly blocked our content. You will need to temporarily disable your Ad-blocker to view this page.

Please click the "Downloads" icon フィボナッチ数列とは in the Safari toolbar, open the first download in the list,
then フィボナッチ数列とは click Install

フィボナッチ数列とは

スクリーンショット 2016-09-06 11.44.38

再帰使わない

スクリーンショット 2016-09-06 11.57.41

Golangのsliceを使って実装しています。こうすれば再帰は使わずに実装できますね
ではベンチマーク行ってみましょう フィボナッチ数列とは

ループの回数を減らしてみる

今までは i 分だけ回してましたが、 i/2 分だけにしてみましょう

スクリーンショット 2016-09-06 12.01.13

だんだん読みづらくなってきました…
ベンチマーク行ってみましょう

17.4ns!!どんどん早くなって行ってますね
ここまでは自分で工夫して行きましたがそろそろ限界なのでいろいろ調べてみましょう

Golangのパフォーマンスチューニング

  • メモリのアロケーション回数を減らす
  • 要素数が事前にわかっている場合には append を使わない
  • channel を使わない
  • 関数(メソッド)を呼ばない

などなど…
いろいろ調べましたが、今回のコードで悪いところといえばsliceを使っているところですかね?(本来はトリニボッチとかに対応するためにsliceにしたのですが…)
ではこれをただのIntの変数に変えてみましょう

これが一番早いと思います

スクリーンショット 2016-09-06 12.09.36

見る限り爆速そうですね(適当)
ではベンチマークしてみましょう

え?5.フィボナッチ数列とは 20ns?めちゃくちゃ早くなった!!!!
やっぱり毎回sliceでアクセスするのは遅いですね(というかsliceの値にアクセスするのに%演算子要らなくないか…?)

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる