पृष्ठभूमि
रैंडम डोमिनोज़ Automaton भूकंप के लिए एक खिलौना मॉडल, सेलुलर ऑटोमेटा से प्रेरित है। इस चुनौती में, आपका कार्य इस मॉडल के एक सरलीकृत संस्करण का अनुकरण करना है, और इससे डेटा एकत्र करना है।
ऑटोमेटन को बिट्स A
की एक सरणी पर परिभाषित किया गया है k
, एक गलती रेखा का प्रतिनिधित्व करता है जिस पर भूकंप आ सकते हैं। सरणी अपनी सीमाओं पर घूमती है। हालत A[i] = 0
का मतलब है कि स्थिति i
है ढील , और A[i] = 1
इसका मतलब है कि यह है कि उत्साहित , या ऊर्जा संग्रहित होता है। प्रत्येक समय कदम पर, सरणी की एक स्थिति यादृच्छिक रूप से समान रूप से चुनी जाती है। यदि वह स्थिति शिथिल हो जाती है, तो वह उत्तेजित हो जाता है (संभावित ऊर्जा प्रणाली में जुड़ जाती है)। यदि वह स्थिति पहले से ही उत्साहित है, तो यह एक भूकंप को ट्रिगर करता है, और चुने हुए स्थान और इससे जुड़े सभी उत्साहित पदों को फिर से आराम दिया जाता है। जितने उत्तेजित स्थिति में आराम मिलता है, वह भूकंप की भयावहता है।
उदाहरण
सरणी पर विचार करें
100101110111
लंबाई 12. यदि यादृच्छिक प्रक्रिया बाईं ओर से दूसरी बिट चुनती है, तो सरणी को अद्यतन किया जाता है
110101110111
^
चूंकि चयनित बिट (साथ चिह्नित ^
) था 0
। यदि हम अगली बार बाईं ओर से चौथे बिट को चुनते हैं, जो कि एक अलग-थलग है 1
, तो परिमाण 1 का एक झुंड ट्रिगर होता है, और बिट 0
फिर से सेट होता है :
110001110111
^
अगला, हम दाईं ओर से दूसरा बिट चुन सकते हैं, जो 5 की तीव्रता के भूकंप को ट्रिगर करता है:
000001110000
^
ध्यान दें कि सभी 1
एक ही "क्लस्टर" में चुने गए एक के रूप में चुने गए थे जो भूकंप का हिस्सा थे, और सरणी सीमा पर चारों ओर घूमती है।
काम
आप दो धनात्मक पूर्णांक आदानों के रूप में ले जाएगा k
और t
, और अपने कार्य के लिए यादृच्छिक डोमिनो automaton अनुकरण करने के लिए है t
समय कदम, एक प्रारंभिक length- से शुरू k
सब की सरणी 0
है। आपका आउटपुट पूर्णांकों L
की एक सूची होगी k
, जहां L[i]
(1-आधारित अनुक्रमण के साथ) परिमाण के भूकंपों की संख्या होती है i
जो सिमुलेशन के दौरान हुई थी। आपको आउटपुट से ट्रेलिंग शून्य छोड़ने की अनुमति है।
इनपुट के लिए k = 15
और t = 1000
, कुछ प्रतिनिधि आउटपुट हैं
[117, 97, 45, 26, 10, 5, 3, 1, 3, 0, 0, 0, 0, 0, 0]
[135, 91, 58, 21, 8, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0]
[142, 63, 51, 31, 17, 4, 2, 1, 1, 0, 0, 0, 0, 0, 0]
[106, 75, 45, 30, 16, 8, 5, 2, 2, 0, 0, 0, 0, 0, 0]
[111, 96, 61, 22, 3, 8, 3, 2, 0, 0, 0, 1, 0, 0, 0]
नियम
पूर्ण कार्यक्रमों और कार्यों दोनों की अनुमति है। सबसे छोटी बाइट गिनती जीतती है, और मानक खामियों को रोक दिया जाता है।
ध्यान दें कि आपको किसी विशेष कार्यान्वयन का उपयोग करके ऑटोमेटन को अनुकरण करने की आवश्यकता नहीं है, केवल आउटपुट मायने रखता है।