2008-04-19から1日間の記事一覧

emacsのgraphviz用モードをインストールする

Graphviz dot mode for emacsから持ってくる。 $ wget http://users.skynet.be/ppareit/projects/graphviz-dot-mode/graphviz-dot-mode.el $ sudo cp graphviz-dot-mode.el /usr/share/emacs/site-lisp で、.emacsに以下を追加 ;;graphviz mode (load "graph…

複数のスレッドを使って並列にソートする際に必要なスレッド数を計算する

複数のスレッドを用いて並行にソートするアルゴリズムをrubyのthreadで実装する - 計算機と戯れる日々に必要なスレッド数を一般化する 奇数のとき n(n-1)/2 偶数のとき (n/2)^2+(n/2-1)^2=n(n-2)/2+1 個数 実値 n(n-1)/2 n(n-2)/2+1 01 02 03 04 05 06 07 08…

複数のスレッドを用いて並行にソートするアルゴリズムをrubyのthreadで実装する

複数のスレッドを用いて並行にソートするアルゴリズムをrubyのthreadで実装するそらでは書けなかったのでまず絵を書いた。 枝番号をキューとして実装したのが以下 require 'thread' t,q=[],[] (0..14).each{|i|q[i]=Queue.new} t[0]=Thread.fork{ q[4].push(…

rubyのinjectにはバグがあるのか?

>> [1, 2, 2, 3, 2].inject([]){|a,i|a<<i} => [1, 2, 2, 3, 2] >> [1, 2, 2, 3, 2].inject([1]){|a,i|p a;p a[-1];a<<i} [1] 1 [1, 1] 1 [1, 1, 2] 2 [1, 1, 2, 2] 2 [1, 1, 2, 2, 3] 3 => [1, 1, 2, 2, 3, 2] >> [1, 2, 2, 3, 2].inject([1]){|a,i|p a;p a[-1];a<</i}></i}>

rubyのuniqがun*xのそれと動きが違う件

un*xのコマンドのuniq ~$ echo -e "1\n2\n2\n3\n2\n2\n"|uniq 1 2 3 2 一方rubyは >> [1, 2, 2, 3, 2].uniq => [1, 2, 3] くそぅ 思いっきりはまってしまった。常日頃ソート後のモノしかいじっていないってことか。 一方gaucheはgroup-sequenceがある。 http…