去年のICFP

ええと、プログラミング系の日記は、mixiではなく、はてなダイアリーに書くことにしました。
 
去年は事前情報とかほとんど集めずにICFPに参加したんですが、他のチームのICFP2007の情報とかを、さっき少し読んできたので、うちのチームの活動記録を手短にまとめようと思います。
 
ちなみに、2007年2月ごろに受けたTOEICの試験結果が相変わらず250前後だった僕(ただしICFPの頃にはもう勉強で370ぐらい取ってた)と、そんな僕と同じぐらい英語に乏しい後輩2人を引き連れて、3人でICFPに参加した。
とりあえず、問題文を日本語に翻訳するだけで、21時間を消費しました。
(他のチームからみると、ありえないだろうなぁ…でも、うちのチームは、最初12時間は和訳に費やすことを試合開始前から決めていたからねぇ…でも12時間じゃ足りなかったっていう…)
 
チーム「Purely Functional Infrastuructre」(http://kzk9.net/blog/2007/07/icfp_2007.html)や、shinhさん(http://d.hatena.ne.jp/shinichiro_h/20070723#p1)が28bytes-prefixに途中まで気付かなかった様に、うちのチームも28bytes-prefixには気付かない……気付かずに……shinhさんに近いアプローチで画像の書き換えをしてました。
ただ、アプローチ自体は近かったものの、圧倒的な力不足で、結果は28bytes-prefixを抜くことができず、869チーム中171位でした。
 
最終的に完成した絵は、こんな感じ。
 

 
お絵かき感覚でパッチを作成するノウハウを作り出したのが、試合終了5時間前とか。
その後、後輩が頑張って、箱の色を変えたりとか、色々やってくれました。
夜明けの空の描画は、色配合を変えようとして頑張ったのですが、無理だったっぽいです。
 

 
ちなみに、うちのチームのdna2rnaプログラムは、1回動かすのに5時間かかるという、ダメダメ君でした。
書いたの僕です、サーセン
 
dna2rnaが、チューリングマシンと同等の表現力を有することには、dna2rnaを書いてる途中にだいたい想像がついていたので、逆アセンブリとかもアイディアとしてはあったのですが、少し手数が足りなかったです。
他の方の日記を読む限りだと、かなり単純に逆アセンブリが作れたように読み取れるのですが、試合中は、DNA2RNAマシンのマシン語(以降、DNA語と表記)が一部エンコードされていて、それをデコードしながら動作するパターンも考えていたので、逆アセンブリに手をつける前に先にやっておくべきことをやっていたら、結局逆アセンブリを作る時間がなかった。
 
ただ、試合前までに僕の作ってたプログラムの範囲内で分かる範囲だと、こまめにデコードしながらの動作っていうのは、やってなさそうに思えたので、下手すると、一切エンコードされてませんよね?? みたいな。
 
終了20時間前に書いた、dna2rnaを動かしながらrnaの元番地を探すプログラムは、動かすのに13時間とかだったかな。
結局、これを動かし始めた後に、3人で試合中にカラオケに行ってしまったのが、不真面目すぎるうちのチーム。
その動作結果をもとに、解析が進んでいって、最後5時間ぐらいは、3人で力を合わせて、お絵かき感覚でパッチ作ってました。
空の色さえ、うまく配色できれば、28bytes-prefixを抜けたかもしれないんですが……残念。
 
てか、28bytes-prefixに気づいていたら、1036539で、29位だったんだけど。
まぁ、それでも、shinhさんたちには、まだまだ全然届かない感じですかね。
今年こそは頑張りたいです。