正方形のGame of Lifeグリッドの状態を考慮して、それが以前の状態から進化したのか、または作成されたにすぎないのかを判断します。つまり、状態が「Garden of Eden」状態であるかどうかを識別します。
入力
1が「生きている」ことを示し、0が「死んでいる」ことを示す状態の正方形のグリッド。必要に応じて、0と1の代わりに2つの識別可能なシンボルを選択できます。
グリッドの辺の長さはゼロではありませんが、任意の自然数1 <= N <= 20です。
入力グリッド外のセルのいずれかまたはすべてがこの世代で生きている可能性があり、それらのいずれかまたはすべてが前の世代で生きている可能性があります。考慮される宇宙は無限であるため、境界条件はありません。入力のエッジは、ユニバースのエッジではありません。具体的には、グリッドはラップしません。
入力は、行で区切られた文字列または単一の文字列の形式です。必要に応じて、グリッドの辺の長さまたは領域を追加入力として(グリッドの前後に)取ることができます。
許容される入力形式:
010,101,010
010101010
010
101
010
3 010101010
出力
次世代の入力状態につながる可能性のある以前の状態(入力グリッドよりも大きい状態を含む)がない場合は「作成済み」。
次世代の入力状態につながる可能性のある少なくとも1つの可能な以前の状態(入力グリッドよりも大きい状態を含む)が存在する場合、「進化した」。
必要に応じて、「作成」と「進化」の代わりに、2つの区別可能な文字列または数字を使用できます。
可能な以前の状態は、入力と区別する必要がないことに注意してください。状態がそれ自体を次世代として持っている場合、それは進化したと見なされるべきです。
テストケース
010
101
010 Evolved
0101110100
0010101001
1011100110
0101111101
1001001111
1111001001
1011111010
0110011101
1001010100
0010111010 Created
作成されたテストケースは、Achim FlammenkampのGame of Lifeページから取得されます。
m
行列のn
私はすべての可能なテスト場合は、2^(m*n)
初期状態をプログラムの複雑さは大きくなりますが、それは結果が入力と一致した場合にだけチェックすることで問題を解決