Arka fon
Bu zorluğun amaçları doğrultusunda, bir n-stat hücresel otomat , girdi olarak fayarlanan durumdan iki sayı alan ve {0, 1, ..., n-1}bu setten çıktı olarak başka bir sayı döndüren ikili bir fonksiyondur . En az 2 adet uzunluğa sahip bir sayı listesine uygulanabilir.L = [x0, x1, x2, ..., xk-1]
f(L) = [f(x0, x1), f(x1, x2), f(x2, x3), ..., f(xk-2, xk-1)]
Ortaya çıkan listenin orijinalinden bir tane daha az öğeye sahip olduğunu unutmayın. Bir uzay-zaman diyagramı arasında fbaşlayarak Lsürekli olarak uygulanmasıyla elde edilen listelerin liste fiçin L, ve bir liste sonuçları toplamak. Nihai liste Bu liste söylemek uzunluğu 1 olan Lbir bir tanımlama dizisi için fdurum kümesi üzerinden her iki eleman listesi başlayarak uzay-zaman diyagramı bir sıranın, bitişik bir alt liste ise L. Bu, başka hiçbir ndevlet CA'sının tam olarak kesin uzay-zaman diyagramına sahip olmaması koşuluyla eşdeğerdir .
Giriş
Girişleriniz bir n-by- ntamsayı matrisi M, Len az 2 uzunluklu tamsayıların listesi ve isteğe bağlı olarak sayıdır n. Matris Mbir tanımlayan n-durum CA ftarafından f(a,b) = M[a][b](0 tabanlı dizin kullanılarak) dönüştürülmüştür. O garantilidir n > 0ve bu Mve Ltek devlet kümesinin unsurları içeren {0, 1, ..., n-1}.
Çıktı
Eğer çıkış tutarlı truthy değer olacaktır LCA için tanımlayıcı bir dizisidir fve başka türlü tutarlı falsy değer. Bu, tüm "evet" durumlarının aynı doğruluk değerine ve tüm "hayır" durumlarının aynı yanlış değere yol açtığı anlamına gelir.
Misal
Girişlerini düşünün n = 2, M = [[0,1],[1,0]]ve L = [1,0,1,1]. Matris Mikili XOR otomat tanımlar f(a,b) = a+b mod 2ve uzay-zaman diyagramı başlayarak LIS
1 0 1 1
1 1 0
0 1
1
Bu diyagram 0 0herhangi bir satırda yer almaz , bu nedenle Ltanımlayıcı bir sıra değildir ve doğru çıktıdır False. Biz girişi ise L = [0,1,0,0]bunun yerine, uzay-zaman diyagramıdır
0 1 0 0
1 1 0
0 1
1
Bu diyagram sıraları durum grubu çekilen tüm çiftleri içerir, yani 0 0, 0 1, 1 0ve 1 1bu yüzden L, bir tanımlama dizidir ve doğru çıktı True.
kurallar
Tam bir program veya işlev yazabilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez.
Test Durumları
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