海野秀之(うんのひでゆき)の外部記憶
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回めは必要なのか、とかは後で考える。また明日。 やっぱり前半は帰納法ですかね。
#なんとなくだけど、これが正解ってことはない気がする。