Latar Belakang
Untuk keperluan tantangan ini, n
otomat seluler tingkat -hanyalah fungsi biner f
yang mengambil dua angka dari negara ditetapkan {0, 1, ..., n-1}
sebagai input, dan mengembalikan nomor lain dari yang ditetapkan sebagai output. Ini dapat diterapkan ke daftar jumlah panjang minimal 2 olehL = [x0, x1, x2, ..., xk-1]
f(L) = [f(x0, x1), f(x1, x2), f(x2, x3), ..., f(xk-2, xk-1)]
Perhatikan bahwa daftar yang dihasilkan memiliki satu elemen lebih sedikit daripada yang asli. Sebuah diagram ruang-waktu dari f
mulai dari L
adalah daftar daftar yang diperoleh dengan berulang kali menerapkan f
untuk L
, dan mengumpulkan hasil dalam daftar. Daftar akhir memiliki panjang 1. Kita mengatakan bahwa daftar L
adalah urutan pengidentifikasi untuk f
, jika setiap daftar dua elemen di set negara adalah sublist yang berdekatan dari beberapa baris diagram ruangwaktu mulai dari L
. Ini sama dengan kondisi bahwa tidak ada n
CA lain-negara memiliki diagram ruangwaktu yang tepat.
Memasukkan
Input Anda adalah n
-by- n
matriks bilangan bulat M
, daftar bilangan bulat L
panjang minimal 2, dan secara opsional nomor n
. Matriks M
mendefinisikan n
-state CA f
dengan f(a,b) = M[a][b]
(menggunakan pengindeksan berbasis 0). Dijamin itu n > 0
, dan itu M
dan L
hanya berisi elemen dari set negara {0, 1, ..., n-1}
.
Keluaran
Output Anda akan menjadi nilai kebenaran yang konsisten jika L
merupakan urutan pengidentifikasi untuk CA f
, dan nilai palsu yang konsisten jika tidak. Ini berarti bahwa semua "ya" - keadaan menghasilkan nilai kebenaran yang sama, dan semua "tidak" - keadaan menghasilkan nilai palsu yang sama.
Contoh
Mempertimbangkan masukan n = 2
, M = [[0,1],[1,0]]
dan L = [1,0,1,1]
. Matriks M
mendefinisikan otomat XOR biner f(a,b) = a+b mod 2
, dan diagram ruangwaktu mulai dari L
adalah
1 0 1 1
1 1 0
0 1
1
Diagram ini tidak mengandung 0 0
baris apa pun, jadi L
bukan urutan pengidentifikasi, dan output yang benar adalah False
. Jika kita input L = [0,1,0,0]
sebagai gantinya, diagram ruangwaktu adalah
0 1 0 0
1 1 0
0 1
1
Deretan diagram ini berisi semua pasangan yang diambil dari set negara, yaitu 0 0
, 0 1
, 1 0
dan 1 1
, sehingga L
merupakan urutan mengidentifikasi dan output yang benar adalah True
.
Aturan
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji Kasus
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