배경
이 문제를 해결하기 위해-상태 n
셀룰러 오토 마톤 은 f
상태 세트에서 두 숫자를 {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)]
결과 목록에는 원본보다 요소가 하나 더 적습니다. 시공간 도면 의 f
부터는 L
반복적으로 적용함으로써 얻어리스트의 목록 f
을 L
한리스트에서 결과를 수집. 최종리스트는 우리가리스트라고 길이 1을 가지고 L
이다 식별 시퀀스 에 대한 f
상태 세트에 걸쳐 매 2 요소리스트로부터 시작 시공간도 일부 행의 인접 하위 목록 인 경우 L
. 이는 다른 n
CA가 정확한 시공간 다이어그램을 가지고 있지 않은 조건과 동일합니다 .
입력
귀하가 입력되어 n
-by- n
정수 행렬 M
정수 목록 L
적어도 길이 2, 임의로 숫자 n
. 이 매트릭스 M
는 0 기반 인덱싱을 사용하여-상태 n
CA f
를 정의합니다 f(a,b) = M[a][b]
. 그것은 보장되고 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
은
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