ICFP2007の続き。

カタログのページを簡単に見れるように、ページ数を与えるとprefixを出力するツールを書いた:

#!ruby                                                                          
Encode = {'0' => 'C', '1' => 'F'}

page_no = ARGV.shift.to_i
page_code = sprintf("%b", page_no).reverse.gsub(/[01]/, Encode)
src = "C" * page_code.length
puts "IIPIFFCPICFPPICIIC#{src}IICIPPP#{page_code}IIC"

それでは索引に従って、1729ページの”Structure of the Fuun Genome”を見てみる:

structure_of_the_fuun_genome

Fuunゲノムは赤・緑・青の3つの部分に分けられて、赤のゾーンは事が起こる部分で緑から作られ、死ぬときに青い部分が次に何をするべきかを教えてくれる。緑のゾーンはサイズが変わらない。赤のゾーンを吐き出す。Fuunを修理したいエンジニアは緑のゾーンを修正できるが、長さを変えるべきではない。青のゾーンは、よくわからん。

ちなみに、次のページとかあるのかと思って、1730ページを見てみると:

error

エラーページが表示された。

8ページ、”More notes on Fuun Genomics”:

more_notes_on_fuun_genomics

どういうふうにデータがDNAにエンコードされているかが書かれている。

  • Pが真でFが偽。
  • 負の数

    は1の補数ではない。

  • テキスト

    は銀河間文字セットでエンコードされていて、9つの酸で1文字。テキストは常に128文字で通信される。最後の意味のある文字に続いて数値255がくる。テキストは多くの酸を消費するが、より効率的な方法があったはず…。

  • ポリゴン

    は12の酸の数値の並び。最初が頂点数N、それにN+1の数値ペアが続く。最初のペアは開始点。その後に相対位置が続く。最後のペアはすべての移動の合計。従ってポリゴンを変更する場合には十分な注意が必要。

  • 円には256度ある。
  • DNAの中に面白いビットを見つけたとき、それはクォートされているかもしれないことをお忘れなく。

23ページ、”Activating genes [encrypted]”を見ようとしたが、元の画像が表示されただけだった。暗号化されているのか?

42ページ、”Gene list”:

gene_list

遺伝子テーブル、IFPICFPPCFFPPから始まる緑ゾーンからの相対距離。残りの13ページはどうやって見るのか?

112ページ、”Some things to look out for”:

some_things_to_look_out_for

Bastiaan Heeren氏、unsafePerformIOの乱用罪www。それにしても、直線を引くことと塗りつぶししかできないRNAで画像を描くのはすごすぎる…。

10646ページ、”Intergalactic Character Set”:

intergalactic_character_set

壊れてる?

85ページ、”Field-repairing your Fuun”:

field_repairing_your_fuun

詳しい説明、まだ全体像がわからないので、あとで読む。

2181889ページ、”Notes on weird RNA”:

notes_on_weird_rna

5ページ、”Synthesis of complex structures”:

synthesis_of_complex_structures

L-systen, The Algorithmic Beauty of Plants。これはなんか関係あるのかな?

4405829ページ、”Fuun security features”:

fuun_security_features

なんか暗号化されてる?シーザー暗号かなにか?

123456ページ、”A historical note on RNA compression”:

a_historical_note_on_rna_compression

しかしまあ、元の7MのDNA(さらに1バイトにつき4種類しかない)の中によくこれだけの情報が詰め込んであるもんだ。ようやくここから謎解き。