พื้นหลัง
สำหรับจุดประสงค์ของการท้าทายนี้ออ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 Lนี่เทียบเท่ากับเงื่อนไขที่ไม่มีnแคลิฟอร์เนีย -state อื่นมีไดอะแกรม spacetime ที่แน่นอน
อินพุต
ปัจจัยการผลิตของคุณเป็นn-by- 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คือ
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เพื่อให้เป็นลำดับการระบุและการส่งออกที่ถูกต้องคือLTrue
กฎระเบียบ
คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
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