海野秀之(うんのひでゆき)の外部記憶
Twitter (twilog) / RSS / アンテナ / ぶくま
平野啓一郎公式ブログより、 web2.0的世界において、「名誉」を守るということについて。
私も、「おお!」とかびっくりしながら、大学生協に平積みにされている「新潮」を手に取って、 平野啓一郎さんの『日蝕』をよろこんで読んだクチです。 なんというか、不思議で面白い小説でした。 (フィレンツェとか漢字で書かれても読めないので、なんども前のページを見直しながら読んだ。 全部ルビ (←ruby だね) 振っといてくれよ。) 読んでいるというより、彼の創った世界を「体験している」という感覚だったのを覚えています。
その彼が「梅田本」の著者こと梅田望夫さんと対談本を出すというので、 つらつらと関連記事を眺めていたら、上記の記事に行きあたった。
おもしろい。 日常の軽い短文もいいんですけど、腹に据えかねた感じの長文の方が、 (無責任で申し訳ないけど)おもしろいですね。 トラックバックのいくつかが香ばし過ぎるのは苦笑いするしかないんだけど。
http://ja.reddit.com/ ←こっち系に情報源が偏っているのが気にかかっていたことも あるし、貴重な文系ブログとして巡回先にいれてみようかなと思った。
また nuc さんとこ から。
整数の並んだテープを二度走査して、過半数が同じ整数であるか、そうでないか、 同じであるならばその整数を出力するように、二つの整数しか覚えておけないオートマトンを作れ。
これが答えだ!と確信する前に書くというダメっぷり。
#!/usr/local/bin/ruby def mk_automaton state = :initial candidate = nil ct = 0 Proc.new{ |x| if state == :initial #---- 1回目の走査 if x == nil state = :second ct = 0 else if x == candidate ct += 1 else if (ct -= 1) < 0 candidate = x ct = 1 end end end else #---- 2回目の走査 if x == nil puts candidate if ct > 0 else ct += (x == candidate) ? 1 : -1 end end } end am = mk_automaton 2.times do ARGV.each do |x| am.call(x) end am.call(nil) end
1回めの走査で本当に候補を検出できるのか、 んで、2回めは必要なのか、とかは後で考える。また明日。 やっぱり前半は帰納法ですかね。
#なんとなくだけど、これが正解ってことはない気がする。