ライフゲームの宇宙は碁盤のようにマス目が並んだものである。そのマス目は 「セル」と呼ばれ、一つの「生命」の存在場所と考える。セルは、生命の2つの 状態(生と死)に応じて、2つの状態をとる。
生 | 死 | |
---|---|---|
セルの状態 | ■ | □ |
宇宙の進化は、0以上の整数により表現される時刻(最初は時刻0で、 次は時刻1、時刻2、...というような時刻)に従って進んでいく。 時刻t+1におけるセルの状態は、時刻tの状態と、そのセルを 取り囲む8つ(東、西、南、北、北東、南東、北西、および南西)のセルの状態に 依存して決定される。
セルの現在の状態 | 周囲の■セルの数 | セルの次の状態 |
---|---|---|
■ | 2もしくは3 | ■ |
それ以外 | □ | |
□ | 3 | ■ |
それ以外 | □ |
[例1](宇宙のサイズ=3) □ □ ■ □ ■ □ ■ ■ □ → □ ■ □ □ □ □ □ □ □ [例2](宇宙のサイズ=5) □□□□□ □□□□□ ■□□□□ □■□□□ ■□■□□ → □■□□□ □□□■□ □■■■□ ■□□■□ □□□□□
初期セルパターンは、次の4つの展開規則、 1)東へ展開(eと表記)、 2)西へ展開(w)、 3)南へ展開(s)、 4)北へ展開(n)、 を組み合わせることによって得られるセル配置を指す。次に規則を適用する 始点セルを[■]で区別する。ここで、展開の深さとは、これら4つの規則を 順に適用した回数を指す。 この生成規則はライフゲームの規則とは無関係である。
[規則e] [規則w] [■] --e--> ■ [■]■ ■ [■] [■] --w--> ■ [規則s] [規則n] [■] --s--> ■ [■] ■ ■ [■] [■] --n--> ■
例) 深さ3の生成規則列 n w s によって作られる初期セルパターン。■以外の セルは、すべて、□とする。
□□□□□□ □□■■□□ □■□□■□ □■□□■□ □□□■□□ ↑原点
宇宙はサイズ奇数の正方形とし、宇宙の中央に初期パターン生成の原点を置く。 ついで、初期セルパターンの生成規則に従い、指定された深さの パターンを生成する。この時点を時刻0とする。ライフゲームの規則を 適用し、与えられた時刻Nに、一つ以上生存状態のセル■が 残る初期セルパターン生成規則列の数を求める。
プログラムへの入力は次の通り。
また、出力は次の通り。