चुनौती
आपको एक पूरा प्रोग्राम लिखना है जो STDIN से सात नंबर लेता है, और सेलुलर ऑटोमेटन (CA) के दो आयामी इतिहास को STDOUT में प्रिंट करता है। यह कोड गोल्फ है।
इनपुट स्वरूपण इनपुट सात पूर्णांक / स्ट्रिंग्स कॉमा द्वारा अलग किए जाएंगे। पहली संख्या वोल्फ्राम कोड (प्रत्येक नियम का मानक नाम) के अनुसार नियम की संख्या है। दूसरा प्रारंभिक प्रारंभिक कॉन्फ़िगरेशन है। तीसरा और चौथा यह वर्णन करता है कि प्रारंभिक कॉन्फ़िगरेशन के बाईं ओर किस पैटर्न और कितनी बार इसे जोड़ा जाना चाहिए। पैडिंग के रूप में। पाँचवाँ और छठा दाहिने हिस्से के लिए भी ऐसा ही होता है। सिमुलेशन चलाने के लिए पिछली संख्या पीढ़ियों की संख्या है।
तो, इनपुट का एक उदाहरण है 90,11,0,4,0,4,5
। यह आपके प्रोग्राम को बताना चाहिए कि आप नियम 90 चला रहे हैं । यह प्रोग्राम को यह भी बताना चाहिए कि आप चाहते हैं कि प्रारंभिक कॉन्फ़िगरेशन 11
स्ट्रिंग के 0
साथ 4 बार दोनों सिरों पर जोड़ा जाए, इसलिए वास्तविक शुरुआती पैटर्न है 0000110000
। यह आपके प्रोग्राम को 5 पीढ़ियों के लिए इस सिमुलेशन को चलाने के लिए भी कहता है।
आउटपुट आपके प्रोग्राम को प्रत्येक पीढ़ी (न्यूलाइन्स द्वारा अलग) कोशिकाओं के पूरे सरणी को प्रिंट करना चाहिए, ताकि आउटपुट सीए का स्पेस-टाइम आरेख हो। प्रत्येक पीढ़ी के लिए, प्रत्येक कोशिका की स्थिति इनपुट के रूप में प्रदान किए गए नियम के अनुसार, इसके राज्य और कोशिकाओं की स्थिति को तत्काल बाईं और दाईं ओर निर्धारित किया जाता है। सिमुलेशन को किनारों के चारों ओर लपेटना चाहिए। मुद्रित पहली चीज जीन के रूप में शुरुआती सरणी होनी चाहिए। 0।
इनपुट 90,11,0,4,0,4,5
का परिणाम निम्न आउटपुट में यथासंभव होना चाहिए।
0000110000
0001111000
0011001100
0111111110
1100000011
0110000110
ध्यान दें कि शुरुआती राज्य पांच पीढ़ियों में शामिल नहीं है। यह भी ध्यान दें कि सिमुलेशन किनारों के चारों ओर लपेटता है।
और ज्यादा उदाहरण
इनपुट:
184,1100,01,2,01,1,4
उत्पादन:
0101110001
1011101000
0111010100
0110101010
0101010101
इनपुट:
0,1011,1,0,0,1,2
उत्पादन:
10110
00000
00000
1D CA के काम और वे कैसे गिने जाते हैं, इस बारे में अधिक जानकारी