मुसीबत
चलो एक सामान्यीकृत कैंटर को निर्धारित करते हैं जो पुनरावृत्त रूप से सभी अंतरालों के बीच से कुछ तर्कसंगत लंबाई खंडों को हटा रहा है जो अभी तक हटाए नहीं गए हैं, एक निरंतर अंतराल से शुरू हो रहे हैं।
हटाने या नहीं करने के लिए खंडों की सापेक्ष लंबाई को देखते हुए, और पुनरावृत्तियों की संख्या को देखते हुए, समस्या एक प्रोग्राम या फ़ंक्शन लिखने की है जो n
पुनरावृत्तियों के बाद हटाए गए या नहीं हटाए गए खंडों की सापेक्ष लंबाई को आउटपुट करती है ।
उदाहरण: चतुर्थ और छठवें आठवें को समान रूप से हटा दें
इनपुट:
n
- पुनरावृत्तियों की संख्या, 0 या 1 से अनुक्रमित
l
- खंड की सूची के साथ सकारात्मक पूर्णांक के रूप में लंबाई gcd(l)=1
और विषम लंबाई, भागों की सापेक्ष लंबाई का प्रतिनिधित्व करते हैं जो या तो बने रहते हैं या हटाए जाते हैं, एक खंड से शुरू होता है जो नष्ट नहीं होता है। चूंकि सूची की लंबाई विषम है, इसलिए पहले और अंतिम खंड कभी नहीं हटते हैं। उदाहरण के लिए, नियमित कैंटर सेट के लिए यह एक तिहाई के लिए [1,1,1] होगा, जो कि एक तिहाई है जो हटा दिया जाता है और फिर से एक तिहाई नहीं होता है।
आउटपुट:
जब वे खंड जो पिछली पुनरावृत्ति में हटाए नहीं गए थे o
, तो एग्जामर सूची , वें पुनरावृत्ति gcd(o)=1
में लंबाई n
की होती है, जो सूची की कॉपी की गई स्केल से बदल दी जाती है l
। पहला पुनरावृति ही है [1]
। आप किसी भी अस्पष्ट आउटपुट विधि का उपयोग कर सकते हैं , यहां तक कि एकात्मक भी।
उदाहरण
n=0, l=[3,1,1,1,2] → [1]
n=1, l=[3,1,1,1,2] → [3, 1, 1, 1, 2]
n=2, l=[3,1,1,1,2] → [9,3,3,3,6,8,3,1,1,1,2,8,6,2,2,2,4]
n=3, l=[5,2,3] → [125,50,75,100,75,30,45,200,75,30,45,60,45,18,27]
n=3, l=[1,1,1] → [1,1,1,3,1,1,1,9,1,1,1,3,1,1,1]
आप मान सकते हैं कि इनपुट वैध है। यह कोड-गोल्फ है , इसलिए बाइट्स जीत में मापा जाने वाला सबसे छोटा कार्यक्रम है।
[0, 1, 2, 4, 6, 7]
बजाय[3, 1, 1, 1, 2]
?