नोट: यह सरणी-हेरफेर चुनौतियों की एक श्रृंखला में # 3 है । पिछली चुनौती के लिए, यहां क्लिक करें ।
सूची का औसत बढ़ना
औसत चलती सूची की गणना के लिए एक नया, सूची समतल, मूल के छोटे ओवरलैपिंग उप-सूचियों औसत के द्वारा बनाई गई है, जिसके परिणामस्वरूप है।
एक मूविंग एवरेज बनाते समय, हम पहली बार एक निश्चित 'विंडो साइज़' का उपयोग करके ओवरलैप करने वाले सब्लिस्ट की सूची बनाते हैं, इस विंडो को हर बार एक बार दाईं ओर शिफ्ट करते हैं।
उदाहरण के लिए, सूची [8, 4, 6, 2, 2, 4]
और खिड़की के आकार को देखते हुए 3
, उदात्त लोग होंगे:
[8, 4, 6, 2, 2, 4] Sublists:
( ) <- [8, 4, 6]
( ) <- [4, 6, 2]
( ) <- [6, 2, 2]
( ) <- [2, 2, 4]
हम परिणाम प्राप्त करने के लिए प्रत्येक सबलिस्ट के औसत औसत की गणना करते हैं : [6.0, 4.0, 3.3, 2.7]
(प्रत्येक मूल्य एक दशमलव स्थान पर गोल)।
चुनौती
आपका कार्य एक प्रोग्राम या फ़ंक्शन लिखना है, जिसने एक सूची L , और एक पूर्णांक 1 ≤ n (लंबाई (L) दिया है , के लिए चलती औसत की गणना करें L के लिए विंडो के आकार n का उपयोग करके ।
नियम:
- आपका प्रोग्राम पूर्णांक विभाजन का उपयोग कर सकता है या फ्लोट डिवीजन का । फ्लोट डिवीजन के मामले में, डेटा प्रकार की सीमाओं के कारण छोटे अशुद्धियों को अनुमति दी जाती है, जब तक कि मान अन्यथा सही न हो।
- आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन (लेकिन स्निपेट नहीं) सबमिट कर सकते हैं।
- आप मान सकते हैं कि सूची में केवल सकारात्मक पूर्णांक होंगे ।
- मानक खामियों को मना किया जाता है।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है!
परीक्षण के मामलों
ध्यान दें कि पठनीयता में आसानी के लिए, सभी मानों को एक दशमलव स्थान पर रखा जाता है।
n=5, [1, 2, 3, 4, 5, 6, 7, 8] -> [3, 4, 5, 6]
n=3, [100, 502, 350, 223, 195] -> [317.3, 358.3, 256]
n=1, [10, 10, 10] -> [10, 10, 10]
n=3, [10, 20, 30] -> [20]
n=2, [90, 40, 45, 100, 101] -> [65, 42.5, 72.5, 100.5]