タグ

ブックマーク / odz.hatenablog.com (4)

  • 2006-09-01

    なんか Emacs22 だと pycomplete が動かなかったので Hack。 プロパティ付きの文字列の入出力周りに変化でもあったのかな。 --- pycomplete.el.orig 2005-12-02 10:30:11.000000000 -0500 +++ pycomplete.el 2006-09-01 20:13:55.718750000 -0400 @@ -26,7 +26,7 @@ "^\\(import \\|from \\([A-Za-z_][A-Za-z_0-9]*\\) import \\).*" nil t) (setq imports (append imports - (list (buffer-substring + (list (buffer-substring-no-properties (match-beginning 0) (match-end

    2006-09-01
  • Benchmark の取り方 - odz buffer

    ref:404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark なんか頼まれたし書いておくか。結論から言えば、迷って benchmark をとって、騙されていたら世話無いという。 とりあえず、Dan さんのコードをちょいと改造。 --- pow.c.orig 2007-12-14 17:58:05.000000000 +0900 +++ pow.c 2007-12-14 18:11:37.000000000 +0900 @@ -33,7 +33,7 @@ int main(int argc, char *argv[]){ U32 i, j; U64 rl, rn, rm; - double tl, tn, tm; + double tl, tn, tm, tc; for (i = 0; i < 40; i++) { tl = time_hires(); fo

    Benchmark の取り方 - odz buffer
  • Suffix Array の検索 - odz buffer

    ref:404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search) 面白い応用としては、Suffix Arrayというものがあります。これは無秩序に並んだデータ、例えば一般的なテキストファイルに対応する秩序だったデータ構造を用意し、それに対して二分探索をかけることで、来線形探索しかできなかったデータをO(log n)で検索するアルゴリズムです。これを使うとDVD一枚分の文書でも一瞬にして探索することが出来ます。 ダウト。文字列の比較が定数時間でできるなんてのは幻想ですよ。 ただしくは、検索対象のシーケンスの長さを m として、ナイーブな実装では最悪時間計算量は O(m log n)。Longest Common Prefix(LCP) を計算しておいて、さらに LCP を対象として Range Minimum Query(RMQ) の前準備をしてお

    Suffix Array の検索 - odz buffer
  • Ruby Filter - odz buffer

    ref:Life is beautiful: オブジェクトを次々に渡す「Ruby Filter」ってどうだろう どうせやるなら、Ruby の中でもパイプラインを構築できるようにすればいいのに。 require 'pp' require 'uri' require 'open-uri' require 'rubygems' require 'scrapi' class Filter def initialize(&block) @proc = block end def |(filter) Filter.new do |arg| filter.execute(execute(arg)) end end def execute(arg) @proc.call(arg) end end def parseURI Filter.new do |arg| URI.parse(arg) end end

    Ruby Filter - odz buffer
  • 1