यह सवाल सिर्फ कोड-समीक्षा पर ट्रेंड हुआ और मुझे लगा कि आप इसे कोडगॉल्फ चुनौती के रूप में अनुकूलित कर सकते हैं:
आपको एक्स घरों की एक गैर-खाली सूची दी गई है, जिसे बूलियन के रूप में दर्शाया गया है। प्रत्येक दिन, घर आसन्न लोगों के साथ प्रतिस्पर्धा करते हैं। 1 एक "सक्रिय" घर का प्रतिनिधित्व करता है और 0 एक "निष्क्रिय" घर का प्रतिनिधित्व करता है। यदि किसी दिए गए घर के दोनों तरफ के पड़ोसी या तो सक्रिय हैं या दोनों निष्क्रिय हैं, तो वह घर अगले दिन निष्क्रिय हो जाता है। अन्यथा यह सक्रिय हो जाता है।
def get_state_as_pos(thelist, pos):
if thelist[pos-1] == thelist[pos+1]:
return 0
else:
return 1
उदाहरण के लिए, अगर हमारे पास पड़ोसियों का एक समूह था [0, 1, 0] तो घर पर [1] 0 हो जाएगा क्योंकि घर दोनों के बाईं और दाईं ओर दोनों निष्क्रिय हैं। दोनों सिरों पर स्थित कोशिकाएं विपरीत दिशा में भी जांच करती हैं, इसलिए इंडेक्स 0 पर पड़ोसी इंडेक्स length-1
और इंडेक्स 1 पर हैं और इसके विपरीत। सेल अपडेट करने के बाद भी, आपको दूसरों को अपडेट करते समय इसकी पूर्व स्थिति पर विचार करना होगा ताकि प्रत्येक सेल की राज्य जानकारी एक साथ अपडेट हो जाए।
फ़ंक्शन राज्यों की संख्या और कई चरणों को लेता है और दिए गए चरणों की संख्या के बाद घरों की स्थिति का उत्पादन करना चाहिए।
input: states = [1, 0, 0, 0, 0, 1, 0, 0], steps = 1
output should be [0, 1, 0, 0, 1, 0, 1, 1]
input: states = [1, 1, 1, 0, 1, 1, 1, 1], steps = 2
intermediate state= [0, 0, 1, 0, 1, 0, 0, 0]
output should be [0, 1, 0, 0, 0, 1, 0, 0]
input: states = [1], steps=1
output: states= [0]
हालाँकि, आप जिस सूची को पसंद करते हैं, उसे लें और परिणामी सूची को डिफ़ॉल्ट I / O के माध्यम से आउटपुट करें । मानक खामियों को मना किया जाता है। यह कोडगॉल्फ है, बाइट्स जीत में सबसे छोटा जवाब!
[0, 1, 0, 0, 1, 0, 1, 1]
?