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

acm.uva.es 8月期コンテスト 参加記録

そういえばすっかり忘れていたけど、 今月はちゃんと気づいてコンテストやりました。 というか、あまりに出来なくてすっかり忘れてたのだ… 実質二時間ぐらいしか解いてないけど、 一問しかAcceptしなかった。 なんか難しすぎじゃあないですか? Problem Set A…

Functor と Monad

某M氏とFunctorについて語っていたらふと疑問が。 (ネタにしてごめん…) 彼は今カテゴリーを勉強しているらしいので、 私などよりよっぽどまともな解を見出せるような気もするが、 まぁ、一応…。 とりあえず疑問に感じたのは、 fmap と liftM っておんなじや…

囲碁

なんかよく分かんのだけど、 (というか、囲碁にそんなに詳しいわけでもないのだけど) 囲碁って先手必勝*1なのだろうか? (先後関係なしに)先に打った方が勝ちだとすれば最善な場所に打てばいいし、 そうでなければ初手はパス、で後手もパスで持碁。 …でもなん…

ゲームやってた

久々にゲームをやっていたらまたしても更新が…

二人零和有限確定完全情報ゲーム

タイトル、のようなゲームには必勝法が存在する。 そのこと自体は直感的にも理解できるし、証明も簡単だろう。 さらには最善手も非常に簡単なアルゴリズムで計算できる。 が、計算できるものと現実的に計算できるものの間には 大きな開きがあり、現実的に計…

どうにもこうにも

なんだかどんどん日付が遅れてくるので ここいらでリセット。 当初の予定が…

23個の道は遥か

どうも色々と考え違いが出てくるなぁ。 まぁ、良いか。 Adapter これはいかばかりか一般的過ぎるアイデアなのではなかろうか? 既存の実装を用いて必要とするインターフェースを実装する、 というのをAdapterパターンということにしておこう。 class Banner{ …

非決定性計算

なんだか毎回続く、とか書きながら違うことを書いているような気がする。 今回は、リストモナドを使うと非決定性計算が記述できるという話。 また微妙に脇にそれる。 そういやSICPにamb評価器があったよなぁとか、 それをすんなりかけそうだなぁとか。 とい…

Be ambigous

どんどん日が進み、 どんどん日記が遅れてゆく… (これかいてるの8/25かも)

追記:一つのAggregateに複数のIterator

AggregateとIteratorが分かれていることで複数のIteratorを作れるようであるが、 iterator()のインターフェースが決まっているので、 どっちをもらうか選択は出来ないだろう。 しかしまぁ、どっちがきても問題にならないようにIteratorのインターフェースを …

反パターン

というか、そんなことはどうでも良くて、 色々中途になっている話題もどうでも良くて(良くないか)、 デザインパターンである。 デザインパターンは私の高校生時代の心の拠り所で、 盲目的に信用していたものなのであるが、 関数プログラマに転身した(…あるい…

ノンフィクション「ビンゴゲーム」

近所(というか、家の真ん前)の夏祭りでビンゴゲームをした。 最初は7個中4個も当たってなかなかの滑り出しだったのだが、 その後がとんでもなく不調で、20個中3個ぐらいしか当たらなかった。 そうこうしているうちにどんどん当選者が出てみるみる 景品の等級…

継承

Haskellでも多段の継承関係を持ったものを記述すること出来るよね…? というか、なんというか、Preludeの数関係のクラスがそうなっている。 実装を持ったものの多重継承も出来るような気がする。 #include #include using namespace std; class A{ public: vi…

モナド・中級

ゲームライブラリをモナドにしようと思ったのだが、 いざ自分で書いてみようと思うとさーーーーっぱり書けない。 というか、完全に掌握できている(と思っている…)のが IOモナドとMaybeモナドとListモナドぐらいなものなのだ。 そういうわけで、Monad Templat…

モナドの完全理解に向けて

また英語を読んでいたので更新が滞ってしまった。 あんまり関係ないけど、鴨川沿いの状況が変化… いっそう悪い方向に。そろそろ潮時かなぁ。

フィボナッチ in L

10689番が英文が短かったので解いてみた。 昨日のに比べて簡単過ぎたかもしらん… 解いてる人も多いし。 問題はf(0)=a,f(1)=b,f(n)=f(n-1)+f(n-2)の漸化式で定められる 数列fの何番目かを求めるというもの。 初期値a,bで生成される数列のn番目,下位m桁を出力…

二日連続UVAネタ…

Haskell濃度低下中。

修行の日々

ずいぶん久しぶり(一月半ぶり)にuvaでも解くかなぁ ということで問題を見てみた。 適当に英語が短いやつ… 10690番のExpression Againというやつを考えてみることに。 非負整数N,M(N,M (x1+...+xN)*(y1+...+yM) (xi,yi∈X,重複なし)の最大/最小値を求める問題…

いちにち1uva

昨日のHaskellネタは未だ完成せず。 どうにもこうにも時間が回らない… というか、物自体も今のところ原子核の周りを電子雲が もやもやしているような感じでビジョン自体も曖昧だ。 というわけで、考えつつ勉強しつつ修行。 他にもやりたいことがどんどん出て…

シーン抽象及び高階シーン型(ゲーム設計その6)

シーンとは何だろうか。 ここでまずシーンについて再考してみることにする。 ゲームを割と区切りのいいところで分割したものだと考えると ゲーム=(シーンの集合) ということになる。 シーン間に順序なり主従関係なりコーラーコーリー関係?なりを 定義できれ…

シーンレベル抽象 (ゲーム5回目?)

これまでは非常にプリミティブなレベルでの設計方法… というか継続を用いたゲーム作成の方法を模索するのに 終始していたのであるが、実際の問題として大規模なものを 作成しようとなるとそれだけでは不十分である。 ゲームは一般的に大きくシーンに分けて設…

8月15日にて

母方の実家に行ってました。 いやぁ、海のそばはいいですな。 ずっと家の中に居たけど… ということなので一日で二日分を埋めますです。

不動点演算子の使い方

ねたに困ったときはライトな?話題でも。いつもどおりだらだらと。 λ計算にて再帰的な関数の意味づけに不動点演算子というものを用いる。 不動点演算子(Y)は、λ式Mに対して Y M = M (Y M) を満たすようなλ式で、 具体的には Y = λf.(λx.f(x x)) (λx.f(x x)) …

不動点演算子

昨日日記の日付を間違ってしまって8月11日が欠番になってしまった。 が、まぁ、いいか。めんどくさいし。 今日やった量子計算の勉強会の発表で力を使い果たした…かも。

どうでも良いこと

NP-hard(なんちゃら-hard)の意味を初めて知った。 NPに属するどの問題よりも計算量が多い問題(NPに属するとは限らない) ということだったのか。 用語自体はちょこちょこ見かけたのだが、使ってた教科書に 載ってなかったから分からないままだった。 というこ…

英語英語英語

英文を今日中に20ページぐらい読まないといけないので 今日はHaskellできない。1ページ読むのに1時間ぐらいかかるんですけど… ということで今日はネタなし…はぁ。

6502 emulator

先日の6502の復習を元にエミュレータを書いてみた。 今でこそλ教信者に成り果ててしまった感じの私であるが、 昔はごりごりチューニングが大好きな健全な(?) 若者なのであった。 http://fxp.infoseek.ne.jp/haskell/cpu.hs とりあえずこんな感じ。周りを作…

Quantum Computation and Quantum Information

「万が一にも」量子コンピュータが完成してしまった ときのために量子論とかを勉強することになった。 量子論をまともに勉強するのは実は初めてなのだが、 これほどまで形式化されたものだとは思っていなかった。 理論自体はベクトル表記で完全な記号操作で …

量子論

テトリス作成あたりのキーワードで検索して来る人が ちょこちょこおられるようなのだが、ここには一般的な手法は置いていない。 というか、検索してる間に作りなよ…

追記

main = do seed このようなコードを書いて 配列アクセス以外のオーバーヘッドを計ってみたところ、 $ ./a.out loop : 2.28299 sec. このようになった。 これを考えるとData.Arrayはかなり高速だということがわかる。 100万回で数十ms、1回当たり数十nsなので…