जीवन की तरह सेलुलर ऑटोमेटोन सेलुलर ऑटोमेटोन हैं जो कॉनवे के गेम ऑफ लाइफ के समान हैं, इसमें वे (सैद्धांतिक रूप से) बड़े पैमाने पर बड़े वर्ग ग्रिड पर काम करते हैं, जहां प्रत्येक सेल में ठीक 8 पड़ोसी होते हैं, और 2 राज्यों में से एक है, अर्थात् जीवित और मृत। ।
हालाँकि, ये लाइक-जैसे संस्करण एक महत्वपूर्ण तरीके से भिन्न होते हैं: किसी दिए गए सेल के नियम जीवित रहते हैं और किसी दिए गए सेल के नियम अगली पीढ़ी के लिए जीवित रहते हैं।
उदाहरण के लिए, क्लासिक गेम ऑफ लाइफ नियम का उपयोग करता है B3/S23
, जिसका अर्थ है कि एक नया जन्म लेने के लिए 3 जीवित कोशिकाएं लेता है, और जीवित रहने के लिए या तो 2 या 3 जीवित पड़ोसी। इस चुनौती के लिए, हम मान लेंगे कि पड़ोसियों में खुद को शामिल नहीं किया गया है, इसलिए प्रत्येक सेल में ठीक 8 पड़ोसी हैं।
आपका कार्य है, एक प्रारंभिक कॉन्फ़िगरेशन, एक जन्म नियम, एक उत्तरजीविता नियम और एक धनात्मक पूर्णांक (चलाने के लिए पीढ़ियों की संख्या), उन नियमों का उपयोग करते हुए जीवन-संबंधी ऑटोमेटन का अनुकरण करें, जो कम से कम संभव कोड में दी गई पीढ़ियों की संख्या के लिए उपयोग करते हैं। । प्रारंभिक कॉन्फ़िगरेशन एक वर्ग मैट्रिक्स / 2-आयामी सरणी या एक बहु-तार स्ट्रिंग होगा, जिसे आप चुन सकते हैं। दूसरों को किसी भी उचित प्रारूप और विधि में दिया जा सकता है।
उदाहरण के लिए, यदि जन्म नियम 12345678
(कोई जीवित पड़ोसी) था, तो जीवित रहने का नियम था 2357
और शुरुआती कॉन्फ़िगरेशन था
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
अगली दो पीढ़ियाँ होंगी
Generation 1: Generation 2:
0 0 0 0 0 1 1 1 1 1
0 1 1 1 0 1 1 0 1 1
0 1 0 1 0 1 0 1 0 1
0 1 1 1 0 1 1 0 1 1
0 0 0 0 0 1 1 1 1 1
यदि दी गई पीढ़ियों की संख्या 10 थी, तो उत्पादन कुछ लाइनों के साथ होगा
0 1 1 1 0
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
0 1 1 1 0
आपको इनपुट मैट्रिक्स द्वारा दिए गए सीमा के बाहर होने वाले परिवर्तनों को संभालने की आवश्यकता नहीं है, हालांकि, मैट्रिक्स के बाहर सभी कोशिकाएं मृत हो जाती हैं। इसलिए, इनपुट मैट्रिक्स किसी भी आकार का हो सकता है, अधिकतम मूल्य तक जो आपकी भाषा समर्थन कर सकती है। आपको पीढ़ियों के बीच बोर्ड का उत्पादन करने की आवश्यकता नहीं है।
यह एक कोड-गोल्फ है इसलिए सबसे छोटा कोड जीतता है।
परीक्षण के मामलों
ये उपयोग B/S
किए गए नियमों को इंगित करने के लिए नोटेशन का उपयोग करते हैं
B2/S2
, generations = 100
कॉन्फ़िगरेशन:
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
आउटपुट:
0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0
1 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
B1357/S2468
, generations = 12
कॉन्फ़िगरेशन:
1 0 1 0 1 0
0 1 1 0 1 0
1 0 0 0 0 0
0 0 0 0 0 1
1 1 1 1 1 0
0 1 1 0 0 1
आउटपुट:
0 1 0 0 0 0
0 1 1 1 1 0
0 1 0 1 1 0
1 1 1 0 0 0
0 0 1 1 1 0
0 1 1 0 0 0
यदि आपको अधिक परीक्षण मामलों को उत्पन्न करने की आवश्यकता है, तो आप इस अद्भुत सिम्युलेटर का उपयोग कर सकते हैं । कृपया बोर्ड आकार को सीमित करना सुनिश्चित करें