バックグラウンド
この課題のために、n
-stateセルオートマトンはf
、状態セットから2つの数値{0, 1, ..., n-1}
を入力として受け取り、そのセットから別の数値を出力として返す単純なバイナリ関数です。これは、少なくとも2の長さの数値のリストに適用できます。L = [x0, x1, x2, ..., xk-1]
f(L) = [f(x0, x1), f(x1, x2), f(x2, x3), ..., f(xk-2, xk-1)]
結果のリストの要素は元のリストより1つ少ないことに注意してください。時空図のf
から始まるは、L
繰り返し適用して得られたリストのリストであるf
とL
、リスト内の結果を収集します。最終的なリストの長さは1です。状態セットのすべての2要素リストが、時空間図のいくつかの行の連続したサブリストである場合、リストL
はの識別シーケンスであると言います。これは、他の状態のCAがその正確な時空図を持たないという条件と同等です。f
L
n
入力
入力は、n
x行n
整数の行列M
、L
長さが2以上の整数のリスト、およびオプションで数値n
です。マトリックスがM
定義n
-state CA f
によってf(a,b) = M[a][b]
(0ベースのインデックスを使用して)。これは、ことが保証されn > 0
、そのM
とL
のみ状態集合の要素を含みます{0, 1, ..., n-1}
。
出力
L
CAの識別シーケンスである場合、出力は一貫した真の値f
であり、それ以外の場合は一貫した偽の値になります。これは、すべての「はい」インスタンスは同じ真理値をもたらし、すべての「いいえ」インスタンスは同じ偽値をもたらすことを意味します。
例
入力を考えてみましょうn = 2
、M = [[0,1],[1,0]]
とL = [1,0,1,1]
。マトリックスは、M
バイナリXORオートマトンを定義f(a,b) = a+b mod 2
し、時空図最低L
IS
1 0 1 1
1 1 0
0 1
1
この図には0 0
行が含まれていないためL
、識別シーケンスではなく、正しい出力はFalse
です。L = [0,1,0,0]
代わりに入力すると、時空図は
0 1 0 0
1 1 0
0 1
1
この図の行は、状態セットから引き出されたすべてのペアを含む、すなわち0 0
、0 1
、1 0
および1 1
、そうL
識別シーケンスであり、正しい出力されますTrue
。
ルール
完全なプログラムまたは関数を作成できます。最も低いバイト数が優先され、標準の抜け穴は許可されません。
テストケース
Trivial automaton
[[0]] [0,0] 1 -> True
Binary XOR
[[0,1],[1,0]] [1,0,1,1] 2 -> False
[[0,1],[1,0]] [1,0,1,0] 2 -> True
[[0,1],[1,0]] [0,1,0,0] 2 -> True
Addition mod 3
[[0,1,2],[1,2,0],[2,0,1]] [0,1,1,0,0,0,1,0,0] 3 -> False
[[0,1,2],[1,2,0],[2,0,1]] [0,1,1,0,0,0,1,0,1] 3 -> True
Multiplication mod 3
[[0,0,0],[0,1,2],[0,2,1]] [0,1,1,2,0,0,1,0,1] 3 -> False
[[0,0,0],[0,1,2],[0,2,1]] [0,1,1,2,2,2,1,0,1] 3 -> True
Some 4-state automata
[[3,2,2,1],[0,0,0,1],[2,1,3,1],[0,1,2,3]] [0,0,0,0,1,1,1,1] 4 -> False
[[3,2,2,1],[0,0,0,1],[2,1,3,1],[0,1,2,3]] [0,0,0,1,0,1,1,1] 4 -> False
[[3,2,2,1],[0,0,0,1],[2,1,3,1],[0,1,2,3]] [0,1,2,3,3,1,2,3,0] 4 -> True
[[0,1,2,1],[1,0,2,0],[2,2,1,0],[1,2,0,0]] [0,0,1,1,2,2,0,2,1] 4 -> False
[[0,1,2,1],[1,0,2,0],[2,2,1,0],[1,2,0,0]] [0,3,1,3,2,3,3,0,1] 4 -> False
[[0,1,2,1],[1,0,2,0],[2,2,1,0],[1,2,0,0]] [0,3,1,3,2,3,3,0,1,2] 4 -> True