Life Goes On

まあまあだけど楽しんでる方です

2010-01-01から1年間の記事一覧

ポケットキューブ(2×2×2キューブ)の最短手数

ルービックキューブを揃えるための最短手数は最大でも20手だそうです。3×3×3を解くには相当なリソースが必要ですが、2×2×2なら何とかなるんじゃないかと思い、プログラムを組んでみました。 結果は↓の通りで最大で11手でした。これくらい誰か既に計算してそ…

Haskellと確率と限定継続

会社の勉強会で、Haskell による確率プログラミングについて話しました。 元ネタは Oleg さんの論文(Probabilistic Programming)です。OCaml で書かれていたプログラムを Haskell に翻訳しながら解説しました。もともとの論文の主張は、木探索として定義し…

Google Code Jam 2010 - Qualification Round

今年も参加してます。予選だしあまり言うこともないのですが、せっかくなのでコードを晒しときます。 去年のコードと比べると、ゴルフの影響を受けすぎ(悪い意味で)。もうちょっと可読性を大事にする人間だったはずなのですが・・・。 ともあれ Haskell で…

Haskellers Meeting 2010 Spring

行ってきました。 Haskell の神さまにたくさん会いました。 サインももらいました。オレオレ関数型言語を実装したいって言ったら、『今はこういう実装じゃないけど最初に読むにはいい本だよ』みたいなことを言って、↓のメッセージを書いてくれました。 家宝…

Haskell(GHC)でのプロファイルのとりかた

いつも忘れて、その度にぐぐってるので、メモ。 コンパイル時に -prof -auto-all オプションをつける ghc --make -prof -auto-all hoge.hs実行時に、+RTS -p オプションをつけて、出力される 〜.prof ファイルを読む ./hoge.exe +RTS -p -RTS特定の式のコス…

SPOJ の時間制限が厳しい件について

Lost Dog さんの記事が面白そうだったのと、あなごるのサーバが落ちてて何もできなかったのとで、SPOJ に初挑戦。 https://www.spoj.pl/problems/TRT/ 問題は Problem 67 - Project Euler に近いと思います。O(n2) の DP(?)で解きました。 ただ、何も工夫…

鳥たちと戯れる

To Mock a Mockingbird を読んでいます。言わずと知れたコンビネータ論理の教科書(?)です。 そこで算術や論理を関数で表すという、ラムダ計算でよくある話が登場するのですが、自然数の定義が一般的なチャーチ数と違っていて分かりにくかったので、検算用…

BFS

「人材獲得作戦・4 試験問題ほか」を解こうとしている(続・未完) - IKB: 雑記帖 について、コメント欄に書こうと思ったのですが、長くなったのでこちらに。 この場合、遅延評価云々はあまり関係なくて、元エントリのコードでも解が一つ見つかった時点です…

リストも関数も同じもの

注:この文章は Haskell 布教のため、 Haskell を知らない人向けに書いています。なので、ちょっとでも分かりにくいところはどんどん指摘してください。しばらく前に、hasekll-jp のメーリングリストで Haskell の型クラスの体系が話題になっていたのですが…

素因数分解

inamori さんが Project Euler の解説記事で素因数分解について触れているのですが、そこで「あまりHaskellっぽくない」と書いてあるのが、気になってしまいました。 Haskell っぽいコードってどんなだろう、やっぱり自前で再帰せずに高階関数を使うのかな、…

詳細設計書

ネタ元:詳しすぎる詳細設計書 - SiroKuro Page 自分だったらこんな風に書きたかったりするので、やっぱりまだ詳細設計書が邪魔だと思いました。:p あ、詳細設計書なんて要らんだろ、という話には激しく同意です。 import Control.Arrow import Data.List da…