पृष्ठभूमि
इस चुनौती के प्रयोजनों के लिए, एक 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)]
ध्यान दें कि परिणामी सूची में मूल की तुलना में एक कम तत्व है। से शुरू करने का एक स्पेसटाइम आरेख एक सूची में बार-बार आवेदन करने और परिणाम एकत्र करने से प्राप्त सूचियों की सूची है। अंतिम सूची की लंबाई 1 है। हम कहते हैं कि सूची के लिए एक पहचान अनुक्रम है , यदि राज्य सेट पर प्रत्येक दो-तत्व सूची से शुरू होने वाले स्पेसटाइम आरेख की कुछ पंक्ति की एक सन्निहित उपसूची है । यह इस शर्त के बराबर है कि किसी भी अन्य- सीए के पास सटीक स्पेसटाइम आरेख नहीं है।f
L
f
L
L
f
L
n
इनपुट
आपके इनपुट्स एक n
हैं-n
पूर्णांक मैट्रिक्स M
, L
कम से कम 2 लंबाई के पूर्णांकों की एक सूची और वैकल्पिक रूप से संख्या हैं n
। मैट्रिक्स M
एक को परिभाषित करता है n
-state सीए 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
बाइनरी एक्सओआर ऑटोमैटोन को परिभाषित करता है 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