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

Huffman coding

ハフマン符号はデータ圧縮の手法で 『プログラミングコンテストチャレンジブック』 によると貪欲法になるらしい。 出現頻度が高い文字により短い符号を割り当てるので元の文字列より圧縮できる。 エンコードの手順 文字列から頻度表を作成する 頻度表からハ…

monoid

id:akihiro4chawon 氏の 比較はモノイド を読んで新しい視点が得られた気がするので忘れないうちに書いておく。 半群とは Wikipedia から引用 演算が閉じている S の各元 a, b に対して、演算結果 a • b は再び S に属する。 結合律 S の各元 a, b, c に対し…

subsequences

Groovy Sequence of a number - Stack Overflow から def number = 169 // need a method in groovy to find the consecutive numbers that is, 1,6,9,16,69,169 // not 19! Groovy には List#subsequences があるがどうやら連続しているものだけ欲しいらし…

Text wrapping

終わってたけど 「プログラミングGroovy」のカバーに載せる短いプログラム - Togetter みて考えたもの。 「プログラミングGROOVY」と表示するプログラム。無茶な 3 行だったのできれいにした。 本当は Groovy のロゴをどこかの API でアスキーアートに変換し…

型クラス

.hs

このとき 本当は ArrowChoice*1 での実装も書く予定だったけどまだ理解が足りてなかった。 それで id:nskj77 氏が書かれた Arrow のはなし を読んでいる。 読みながら実際の定義も調べているとどうやら型クラスが理解できていない。 型クラスについて調べて…

場合の数でループする

inamori 氏の ある確率 - 桃の天然水 を実装してみた*1。 8つのコップがあって、ボールをランダムに16個コップに入れる。 そのとき全てのコップに2個ずつボールが入る確率は? ボールを入れるコップでループする どのコップに入れたかで処理すると 8^16 回処…

trampoline

Windows update を実行したらパソコンが壊れてしまった。 パソコンが壊れたことは過去に 3 回あるがいずれも Windows update 中と直後。 今回はグラフィックボードが壊れただけ*1で助かったので続きを。 前回調べたのは TCO を実装するためで、何故実装した…

metaClass

以前 uehaj 氏が指摘されたエントリ ExpandoMetaClass.enableGlobally()について一言いっておくか - uehaj's blog ExpandoMetaClass.enableGlobally() で metaClass が変化するのは同じだけど振る舞いは変わっているようなのでメモしておく。 この辺りは明文…