SuperCon'99 本選課題 [ライフゲーム]

SuperCon'99 実行委員会

ライフゲームの規則

ライフゲームの宇宙は碁盤のようにマス目が並んだものである。そのマス目は 「セル」と呼ばれ、一つの「生命」の存在場所と考える。セルは、生命の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に、一つ以上生存状態のセル■が 残る初期セルパターン生成規則列の数を求める。

プログラムへの入力は次の通り。

  1. 宇宙のサイズ
  2. 初期セルパターンの深さ
  3. 最終時刻N

また、出力は次の通り。

  1. 初期セルパターン生成規則列の個数