タグ

ブックマーク / mickey24.hatenablog.com (2)

  • Rubyで任意のメソッドをメモ化する - ぬいぐるみライフ?

    Rubyベストプラクティスの5-4より.メタプログラミングの例として面白かったのでまとめてみる. メモ化とは メモ化とは,引数に対するメソッドの戻り値を保存しておき,再び同じ引数でメソッドが呼び出された時にその値を再利用することにより,同じ計算を何度もすることを防ぐ最適化手法のひとつ.全ての引数に対しメソッドの結果が不変の場合(同じ引数で何度呼び出しても毎回同じ戻り値を返す場合),メソッドをメモ化することができる. 以下はフィボナッチ数を再帰で計算するメソッドfibの例. def fib(n) (0..1).include?(n) ? n : fib(n-2) + fib(n-1); end この実装の場合,例えばfib(n)はn = 3で5回,n = 4で9回というように,nの値が大きくなるにつれて再帰呼び出し回数がどんどん増え,実行時間が爆発的に増大してしまう.私の環境だとfib(30

    Rubyで任意のメソッドをメモ化する - ぬいぐるみライフ?
    hibariya
    hibariya 2010/09/06
  • Vim完全バイブル 第5章 複数ウィンドウの扱い - ぬいぐるみライフ?

    Vim完全バイブル」のメモの続きです。 今回はウィンドウを分割して複数ファイルを同時に表示したり、バッファを切り替えたりするためのコマンドをまとめます。 「第5章 複数ウィンドウの扱い」の内容は以下の通りです。 ウィンドウの分割 分割ウィンドウのサイズの変更 バッファ バッファ一覧の表示 編集バッファの切り替え ウィンドウの分割 以下のコマンドを使うと、Vimのウィンドウを分割して複数のファイルを同時に表示することができる。 ウィンドウ分割関連のコマンド :new [{file}]ウィンドウを横方向(上下)に分割し、新しくできたウィンドウで新ファイルの編集を開始する(new) :vne [{file}]ウィンドウを縦方向(左右)に分割し、新しくできたウィンドウで新ファイルの編集を開始する(vnew) :sp [+{command}] [{file}]ウィンドウを横方向(上下)に分割し、新

    Vim完全バイブル 第5章 複数ウィンドウの扱い - ぬいぐるみライフ?
    hibariya
    hibariya 2008/11/03
  • 1