2008-01-01から1ヶ月間の記事一覧

コミッタになった

月曜日ごろ、アカウントを発行してもらいました。やりたい放題です。とりあえずは、Ruby のテストを充実させたいです。目標は gcov のカバレッジで 80% 以上。手始めに bignum.c 、sprintf.c 、struct.c 、math.c のカバレッジを 90% 以上にしてみました (ru…

東海道線徒歩 (中編)

昨日の土曜日もまた東海道線を歩いてきました。大磯から真鶴まで。線路の距離で 28.0 km 、道のりで 35.2 km 。7 時半から 17 時半まで 10 時間。大磯駅から早川駅までは道も街並みも普通の田舎でした (小田原近辺を除く) 。国府津駅は通勤快速が止まるので…

小さい Bignum

Fixnum に収まる範囲の Integer は必ず Fixnum になると思っていましたが、そうでないような Bignum を作れることを知りました。 x = (2**64).coerce(0).first p x #=> 0 p x.class #=> Bignum 何か悪さができるかも知れないのでメモ :D

東海道線徒歩 (前編)

昨日は東海道線を歩きました。横浜から大磯まで。線路の距離で 39.0 km 、道のりで 43.6 km です。なんとか早起きして 7 時前からスタートして、18 時半くらいに終わりました。時間で 11 時間半くらい。最近は駅間の短い路線 (京急や地下鉄) ばかりだったの…

多倍長整数演算の速度比較

ruby 、perl 、python の多倍長整数演算の速度を適当に比較してみました。フィボナッチ数の計算速度比較以上にどーでもいい比較です。 前置き 使用した処理系のバージョンはそれぞれ以下のとおりです。 ruby 1.9.0 (2008-01-16 revision 0) perl v5.10.0 pyt…

Mutex#locked? はいらない子?の続き

ref: http://d.hatena.ne.jp/ku-ma-me/20080111/p1shinh さんや kikx さんに指摘されました (kikx さんからはチャットで) が、アサーションで使えますね。「関数 foo が呼ばれるときは mutex がロックされている」という性質を保証したいとき、以下のように…

変数名に ' (プライム) が使いたい

OCaml や Haskell では変数名に ' (プライム) が使えます (先頭以外) 。 let a' = 1 in print_int a';; 「a とほぼ同じ意味だし、一時的な変数だからいちいち名前考えるのがめんどくさい、でも a2 は負けた気がする」という時に重宝します。 Ruby だと ' は…

都営大江戸線徒歩 (後編)

昨日は都営大江戸線を最後まで歩きました。麻布十番から都庁前を通って光が丘まで。8 時前から 3 時前まで 7 時間。歩いた距離で 21.7 km 、線路の距離は 18.6 km でした *1 。六本木駅は朝帰りっぽい人がたくさんいて非常に嫌な雰囲気でした。もう行きたく…

計算量動物園

おもしろいのでメモ。P だの NP だのの計算量クラスがいっぱい載ってます。ほとんど知らないけど。 http://qwiki.stanford.edu/wiki/Complexity_Zoo包含関係とかでグラフになってるバージョン。active が面白いです。 http://www.math.ucdavis.edu/~greg/zoo…

Mutex#locked? はいらない子?

スレッドやセマフォはカタカナで書いても平気ですが、ミューテックスはカタカナだとすごく気持ち悪いです。あとタプルとかもかなり抵抗があります。なぜだろう。 そんなことはどうでもよくて本題。Mutex#locked? って何のためにあるんでしょうか。簡単な事例…

Verilog quine

誰も quine を書いたことのなさそうな言語で quine を書いてみたくなったので、ちょっと調べても見つからなかった Verilog で書いてみました。 module quine; wire [648:1] s = 648'h3b0a696e697469616c2023312024646973706c617928226 d6f64756c65207175696e…

palindromic quine

回文になっている quine です。以下のように動けば正解です。 $ ruby pquine.rb > pquine2.rb $ diff pquine.rb pquine2.rb $ ruby -e 's = File.read("pquine.rb"); p(s == s.reverse)' true 以下は僕の考えた解答。

SAT ソルバで数独を解く方法

数独は非常に SAT に変換しやすい問題です。全部参考文献 *1 に載っている内容ですが、なるべくわかりやすく説明してみます。ちょっと長いです。 SAT とは まず SAT をごく簡単に説明します。すでに SAT を知っている人はここは読み飛ばしてください。 命題…

ruby-minisat とパズルのソルバ

minisat という SAT ソルバの ruby バインディングを作ってみました。1.8.5 と 1.9.0 で動作確認してます。http://dame.dyndns.org/misc/misc/ruby-minisat-1.14.0.tar.bz2 例えば という SAT 問題を解くときはこんな風にします。 require "minisat" solver …

都営大江戸線徒歩 (前編)

歩き初めです。昨日、都営大江戸線を半分くらい歩きました。前編では都庁前から時計回りに麻布十番まで。朝 8 時過ぎから夜 6 時前まで 9 時間半。歩いた距離で 25.5 km 、線路の距離は wikipedia のエントリに載ってないのでわかりません。大江戸線の特徴は…

あけましておめでとうございます

明日から仕事です。