एम पुनरावृत्तियों के साथ [एन] के संचयी रूप से संक्षिप्त रूप से संक्षिप्त


14

दो पॉजिटिव पूर्णांक लें Nऔर पुनरावृत्तियों के साथ Mसंक्षिप्त संचयी राशि बनाएँ । अंतिम पुनरावृत्ति का परिणाम आउटपुट।[N]M

समवर्ती संचयी योग की परिभाषा:

  1. एक संख्या से शुरू करें Nऔर एक अनुक्रम को परिभाषित करेंX = [N]
  2. Xके संचयी रकम के लिए आवेदन करेंX
  3. चरण 2 Mबार दोहराएं ।

एक वेक्टर का संचयी योग X = [x1, x2, x3, x4]है [x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]:।

उदाहरण के साथ N = 1और M = 4:

P = संचयी योग फ़ंक्शन।

M = 0: [1]
M = 1: [1, 1]                    -  X = [1, P(1)] = [[1], [1]]      
M = 2: [1, 1, 1, 2]              -  X = [X, P(X)] = [[1, 1], [1, 2]]
M = 3: [1, 1, 1, 2, 1, 2, 3, 5]  -  X = [X, P(X)] = [[1, 1, 1, 2], [1, 2, 3, 5]]
M = 4: [1, 1, 1, 2, 1, 2, 3, 5, 1, 2, 3, 5, 6, 8, 11, 16]

ध्यान दें कि पहले X = [1]को पुनरावृति के रूप में नहीं गिना जाता है। आप M = 5उपरोक्त उदाहरण के लिए चुन सकते हैं (इस प्रकार X = [1]एक पुनरावृत्ति के रूप में गिना जाता है)।

यह OEIS A107946 है


परीक्षण के मामलों:

N = 5, M = 1
5, 5

N = 2, M = 3
2, 2, 2, 4, 2, 4, 6, 10

N = 4, M = 6
4, 4, 4, 8, 4, 8, 12, 20, 4, 8, 12, 20, 24, 32, 44, 64, 4, 8, 12, 20, 24, 32, 44, 64, 68, 76, 88, 108, 132, 164, 208, 272, 4, 8, 12, 20, 24, 32, 44, 64, 68, 76, 88, 108, 132, 164, 208, 272, 276, 284, 296, 316, 340, 372, 416, 480, 548, 624, 712, 820, 952, 1116, 1324, 1596

यह , इसलिए सबसे छोटा कोड जीतता है। वैकल्पिक इनपुट और आउटपुट प्रारूप।


अब थोड़ा बहुत देर हो चुकी है, लेकिन क्या Nवास्तव में समस्या में कुछ भी शामिल है? यह सिर्फ एक स्थिर कारक है जिसके द्वारा आप परिणाम को गुणा करते हैं।
मार्टिन एंडर

जवाबों:


7

हास्केल , 35 बाइट्स

n!m=iterate((++)<*>scanl1(+))[n]!!m

इसे ऑनलाइन आज़माएं!

-18 बाइट्स के लिए H.PWiz का धन्यवाद


tail.scanl(+)0हो सकता हैscanl1(+)
H.PWiz

@ H.PWiz धन्यवाद, मैं हमेशा और के *1संस्करणों के बारे में भूल जाता हूं । scanfold
Mego


1
35 बाइट्स का उपयोग करते हुएiterate
H.PWiz

मैं बस स्पष्टीकरण को छोड़ने जा रहा हूं - हर बार इसे बदलने का बहुत अधिक प्रयास: पी
मेगो


6

भूसी , 9 8 7 बाइट्स

1 बाइट बचाने के लिए H.PWiz का धन्यवाद।

!¡S+G+;

इसे ऑनलाइन आज़माएं!

1-आधारित का उपयोग करता है M

व्याख्या

      ;     Wrap N in a list to get [N].
 ¡          Iterate the following function on this list and collect
            the results in an infinite list.
  S+        Concatenate the current value with...
    G+      ...the cumulative sum. We're not using the cumsum built-in ∫ 
            because it prepends a zero.
!           Use M as an index into the infinite list.

क्या मेरा दृष्टिकोण भी, मुझे यकीन नहीं है कि यह गोल्फ है। इसके अलावा, मैं पहले से ही किया है सुझाव के लिए cumsumएक अग्रणी वापस जाने के लिए नहीं 0(कुछ जो इस मामले में 2 बाइट्स की बचत होगी)।
आउटगॉल्फ

हो सकता ot∫है G+?
H.PWiz

@ H.PWiz हम्म ... डॉक्स उस पर स्पष्ट प्रतीत होते हैं (AFAIK "स्कैन" का अर्थ है "कम करें" "संचयी कम नहीं")।
एर्ग आउटफोलर

Fकम Gहै संचयी कम
H.PWiz

5

MATL , 6 बाइट्स

:"tYsh

इनपुट्स Mतो हैं N

इसे ऑनलाइन आज़माएं! या सभी परीक्षण मामलों को सत्यापित करें

व्याख्या

:"      % Implicitly input M. Do the following M times
  t     %   Implicitly input N the first time. Duplicate
  Ys    %   Cumulative sum
  h     %   Concatenate horizontally
        % Implicitly end loop. Implicitly display stack

3
Whaaaaat? मुझे यकीन है कि मैंने 100 बार कोशिश की है। मैंने यह भी सुनिश्चित करने के लिए कि यह TIO पर कुछ अजीब त्रुटि नहीं है, Suever की साइट पर जाने की कोशिश की ... मुझे यह बिल्कुल समझ में नहीं आता ...
Stewie Griffin

2
मैं इस बारे में सोचना बंद नहीं कर सकता ... मुझे पूरा यकीन है कि मैंने उन सटीक पात्रों को बार-बार लिखा है और बिना किसी सफलता के इसे दो अलग-अलग साइटों पर चलाने की कोशिश की है। चूंकि यह मामला नहीं हो सकता है, केवल व्याख्या ही शेष है कि मैं पागल हो रहा हूं ... यह वास्तव में मेरे सिर के साथ खिलवाड़ है!
स्टीवी ग्रिफिन


3

पायथन 2 , 83 78 75 71 65 63 60 बाइट्स

def f(n,m):r=n,;exec"s=0\nfor c in r:s+=c;r+=s,\n"*m;print r

इसे ऑनलाइन आज़माएं!

बची हुई 6 8 बाइट्स रॉड की
बदौलत 3 बाइट्स एरिक की बदौलत


@ अधिक धन्यवाद: D
TFeld

आप की जरूरत नहीं है [:], rएक है tuple
आउटगॉल्फ

@EriktheOutgolfer, धन्यवाद, जब यह सूची थी तब से यह एक बचे हुए हैं
TFeld

3

Dyalog एपीएल , 12 बाइट्स

{(⊢,+\)⍣⍺⊢⍵}

N को दाईं ओर और M को बाईं ओर ले जाता है। यहाँ TryAPL!

स्पष्टीकरण:

{(⊢,+\)⍣⍺⊢⍵}
{          } an anonymous function
 (⊢,+\)      a train for a single iteration:
             the right argument
   ,          concatenated with
    +\        the cumulative sum 
            repeated
             left argument times
         ⊢⍵  on the right argument

स्पष्टीकरण से प्यार करें। बहुत स्पष्ट है कि क्या चल रहा है। एपीएल को अन्यथा समझना मुश्किल: पी
एमिग्ना





0

जावास्क्रिप्ट (ईएस 6), 55 54 बाइट्स

करी सिंटैक्स में इनपुट लेता है (m)(n)

m=>g=a=>m--?g([...a=+a?[a]:a,...a.map(x=>s+=x,s=0)]):a

परीक्षण के मामलों


0

जेली , 5 बाइट्स

;+\$¡

इसे ऑनलाइन आज़माएं!

डेनिस द्वारा सुझाया गया संस्करण ( सिंगलटन सरणियों के nबदले रिटर्न [n])।


Wऔर हटाया जा सकता है।
डेनिस

@ डेनिस मुझे डर है कि आउटपुट सही नहीं होगा? मैंने इसके बारे में सोचा लेकिन अगर मुझे इनपुट्स मिलते हैं 1और 0मुझे डर है 1कि [1]अगर मैं उन लोगों को हटाता हूं तो मैं वापस लौट जाऊंगा और मैं इसके बजाय एक पूर्ण कार्यक्रम का उपयोग नहीं कर सकता, क्योंकि इसका आउटपुट अभी भी वैसा ही होगा।
आउटगॉल्फ

1कैसे जेली सरणी प्रदर्शित करता है [1]। मुझे इससे कोई समस्या नहीं है।
डेनिस

@ डेनिस हम्म ... उस पर थोड़ा संदेह था (जैसा कि मैंने अपनी टिप्पणी के अंतिम भाग में कहा था) ... क्या कोई सर्वसम्मति इसकी अनुमति दे रही है, या यह "मानक खामियों को दूर करने वाले डेटासिप्स" के रूप में गिना जाएगा?
आउटगॉल्फ

दोनों प्रारूप ठीक हैं।
सी.जी.

0

क्लोजर, 67 बाइट्स

#(loop[c[%]i %2](if(= i 0)c(recur(into c(reductions + c))(dec i))))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.