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

FizzBuzzへの道

もうすでに2回ぐらい過去にやってるけど、ブログでFizzBuzzを書くといいらしいと聞いた。 class Fizzer def initialize(fz) @l = [] fz.sort{|a, b| b[1] <=> a[1] }.each do |key, val| @l << lambda {|x| (x % val) == 0 ? key.to_s : x} end end def repl…

約6万語を含む英語のスペル辞書からアナグラムを探す

約6万語を含む英語のスペル辞書を使って、アナグラムとなっている単語をリストアップする。「珠玉のプログラミング」にある手法で、ソートした文字列で比較せよっていう話。それだけの話だから、すぐに試せるとか思ってやってみたけど、実際にやってみると結…

C++の絵本を読んだ

「C++の絵本---C++が好きになる9つの扉」(アンク著、翔泳社)を読んだ。継承のところで、子クラスの参照を親クラスのポインタに代入してなんたらかんたらすると、どうたらなんだけど、こうたらするとどうたら、というあたりとか、ややこしそう。まあC++って…

珠玉の電話番号ソート

珠玉のプログラミングを頭から読み始めた。10個ちょっとあるエッセイの1つめ、1000万件ほどある電話番号をどうやって短時間でソートするかという話で、いきなりしびれた。残りのエッセイも期待できるかも。

リフレクションてすごい

『プログラミング言語Ruby』で未読だった後半を読んだ。クラス、モジュールあたりの説明で、諸々かなりスッキリした。言語キーワードに見えた「attr_accessor :hoge」のようなやつらが、実はClassクラスにミックスインされているModuleクラスのプライベート…

プロジェクトオイラー

また、Project Eulerの問題をぽつぽつ解いてみた。そこそこやる気になるし、いい練習だしでいいんだけど、一部の問題は、「これってRubyを使うのは反則じゃないか」という感じ。Ruby1.9+mathnライブラリを使ってしまうと、最初のほうの問題はかなりトリビア…

Rubyで有限オートマトン

「Rubyによる情報科学入門」(久野靖)に、与えられた文字列がある規則に当てはまるかどうかを判定するという課題を例にした有限オートマトンの使い方というのがある。正規表現ぽい。演習をやってみた。ちょっと元のコードが好みと違ったので、クラスを使っ…

久しぶりにelisp

はてダでソースコードのハイライト表示をするためのタグを入れやすくするEmacs Lispを書いた。 ;;; はてなのコードタグを入力 (defun ht-code (beg end) (interactive "r") (let* ((lang-alist '(("ruby") ("c") ("lisp"))) (lang (completing-read "languag…

Rubyでカリー化

ピクセル単位でRGB値を比較するCで書いた重たい関数、 doulbe diff(buf *b1, buf *b2) というのを高速化するために、 doulbe diff(buf *b1, buf *b2, int step) : for (i = 0; i < height; i+=step) for (j = 0; j < width; j+=step) : : d = diff(b1, b2, 4…

ハッシュが楽しい

イタリア人ハッカーが中心になって作ってる"Redis"が面白い。memcachedとかTokyo TyrantみたいなキーバリューのKVSに分類されるんだろうけど、リストやセットが扱えたり、keyを指定してintのincrementとかできる。ネットワーク帯域がやたら速くなって、バカ…