गिनना, बदलना, दोहराना!


18

परिभाषा

निम्नानुसार CURR अनुक्रम के n वें सरणी को परिभाषित करें ।

  1. सिंगलटन सरणी A = [n] से शुरू करें

  2. A में प्रत्येक पूर्णांक k के लिए , k को प्राकृतिक संख्याओं के साथ प्रविष्टि k को बदलें , 1 से k तक की गिनती ।

  3. पिछले चरण को दोहराएं n - 1 अधिक बार।

उदाहरण के लिए, यदि n = 3 , हम सरणी [3] से शुरू करते हैं ।

हम 3 को 1, 2, 3 , पैदावार के साथ प्रतिस्थापित करते हैं [1, 2, 3]

अब हम की जगह 1 , 2 , और 3 के साथ 1 ; 1, 2 और 1, 2, 3 (सम्मान।), उपज [1, 1, 2, 1, 2, 3]

अंत में, हम सरणी में सभी छह पूर्णांकों के लिए पिछले चरण की तरह ही प्रतिस्थापन करते हैं, [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] । यह तीसरा CURR सरणी है।

कार्य

एक फ़ंक्शन का प्रोग्राम लिखें, जिसे इनपुट के रूप में एक सख्ती से पूर्णांक एन दिया गया है, n वें CURR सरणी की गणना करता है ।

आउटपुट में किसी प्रकार की एक फ्लैट सूची होनी चाहिए (और फ़ंक्शन से लौटाए गए सरणी, आपकी भाषा के सरणी सिंटैक्स, व्हाट्सएप-अलग-अलग, आदि का एक स्ट्रिंग प्रतिनिधित्व)।

यह । बाइट्स जीतने में सबसे छोटा कोड हो सकता है!

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

 1 -> [1]
 2 -> [1, 1, 2]
 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3]
 4 -> [1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4]
 5 -> [1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]
 6 -> [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6]


क्या हम [2]एक पूर्णांक के बजाय एक सिंगलटन सरणी (जैसे ) के रूप में इनपुट ले सकते हैं ?
मेगो

@ मेगो आइए इसे पूर्णांक पर रखें।
डेनिस

मुझे ऐसा लगता है कि इसके लिए एक OEIS अनुक्रम होना चाहिए।
DanTheMan

@DanTheMan यह वास्तव में अपने वर्तमान स्वरूप में पूर्णांक अनुक्रम नहीं है, लेकिन मुझे लगता है कि सभी सकारात्मक पूर्णांकों के लिए परिणामों को एक करके इसे एक में बदल दिया जा सकता है।
डेनिस

जवाबों:



16

पायथन, 50 बाइट्स

lambda i:eval("[i "+"for i in range(1,i+1)"*i+"]")

स्कोप दुरुपयोग! उदाहरण के लिए, इसके लिए, i=3स्ट्रिंग का मूल्यांकन किया जाना है।

[i for i in range(1,i+1)for i in range(1,i+1)for i in range(1,i+1)]

किसी तरह, iसब कुछ के लिए फ़ंक्शन इनपुट चर का उपयोग करने के बावजूद , पायथन प्रत्येक पुनरावृत्ति सूचकांक को अलग-अलग दायरे से अलग करता है जैसे कि अभिव्यक्ति थे

[l for j in range(1,i+1)for k in range(1,j+1)for l in range(1,k+1)]

iफ़ंक्शन के लिए इनपुट के साथ ।


यह ट्रिक फ़ायरफ़ॉक्स 30+ में भी काम करती है और मुझे 3 बाइट्स बचाए, धन्यवाद!
नील

@DigitalTrauma में अजगर और जावास्क्रिप्ट दोनों के पास है eval, जाहिर है कि कोड को खुद पोर्ट करना होगा लेकिन मुझे लगा कि आप वैसे भी मान सकते हैं।
नील

@ नील ओह, मैं देख रहा हूँ - मैं पूरी तरह से गलत समझा गया :)
डिजिटल ट्रामा

12

05AB1E, 6 3 बाइट्स

DFL

व्याख्या की

D     # duplicate input
 F    # input times do
  L   # range(1,N)

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

@ Adnan के लिए 3 बाइट्स को सहेजा गया


DFL3 बाइट्स छोटा है :)
अदनान

1
@ अदनान: पता नहीं था कि L ने सूचियों पर काम किया है। थोड़ा आश्चर्य है कि यह स्वचालित रूप से समतल करता है।
इमीना

3
यह वास्तव में एक बग है जो मैंने कभी तय नहीं किया है: पी।
अदनान

6

रेटिना , 33 बाइट्स

$
$.`$*0
+%(M!&`1.*(?=0)|^.+
O`.+

इनपुट और आउटपुट अनरी में।

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

भले ही मैंने संबंधित चुनौती के लिए बंद फॉर्म का उपयोग नहीं किया, लेकिन इस उत्तर को स्वीकार करना आश्चर्यजनक रूप से मुश्किल था।


+%(M!&सबसे लंबा टैग है जो मैं कभी देखूंगा।
लीक नून

6

पायथन 2, 82 बाइट्स

lambda n:[1+bin(i)[::-1].find('1')for i in range(1<<2*n-1)if bin(i).count('1')==n]

यह सबसे छोटा समाधान नहीं है, लेकिन यह एक दिलचस्प तरीका दिखाता है:

  • 2^(2*n-1)बाइनरी में पहले नंबर लिखिए
  • वास्तव में उन लोगों के साथ रहो nवाले
  • प्रत्येक संख्या के लिए, अनुगामी शून्य की संख्या गिनें, और 1 जोड़ें।

4

दरअसल, 9 बाइट्स

;#@`♂RΣ`n

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

स्पष्टीकरण:

;#@`♂RΣ`n
;#@        dupe n, make a singleton list, swap with n
   `♂RΣ`n  call the following function n times:
    ♂R       range(1, k+1) for k in list
      Σ      concatenate the ranges

एक बाइट के लिए लीक नून और दूसरे 2 बाइट्स के लिए प्रेरणा।


;#@"♂R♂i"*ƒएक बाइट बचाता है
लीक नून

@LeakyNun अच्छी पकड़ - ;#@`♂R♂i`nएक और बचाता है!
मेगो

मैं संक्षेप में कोशिश करने वाला था, योग्य।
लीक नून

मुझे लगता है कि 9 यहाँ इष्टतम समाधान होने जा रहा है
मेगो

आपका लिंक अभी भी पुराना है।
लीक नून

4

सी #, 128 बाइट्स

List<int>j(int n){var l=new List<int>(){n};for(;n>0;n--)l=l.Select(p=>Enumerable.Range(1,p)).SelectMany(m=>m).ToList();return l;

इसके साथ using static System.Linq.Enumerable, आप यह कर सकते हैं:int[]J(int n){var l=new[]{n};while (n-- > 0){l = l.Select(p => Range(1, p)).SelectMany(m => m).ToArray();}return l;}
मर मौस

4

एपीएल, 11 बाइट्स

{∊⍳¨∘∊⍣⍵+⍵}

परीक्षा:

      {∊⍳¨∘∊⍣⍵+⍵} 3
1 1 1 2 1 1 2 1 2 3

स्पष्टीकरण:

  • +⍵: के साथ शुरू ,
  • ⍣⍵: निम्न बार करें:
    • ⍳¨∘∊: इनपुट को समतल करें, और फिर इनपुट में प्रत्येक N के लिए एक सूची [1..N] बनाएं
  • : उसी के परिणाम को समतल करें

2
सरल:{(∊⍳¨)⍣⍵⊢⍵}
अदाम

@ Adám: आह, हाँ, गाड़ियां जे से अलग काम करती हैं। मैंने शुरू कर दिया है {(∊∘(⍳¨))⍣⍵+⍵}और फिर सोचा, मैं उन ब्रेसिज़ से कैसे छुटकारा पाऊँ?
मारिनस


2

गणितज्ञ, 27 26 बाइट्स

1 बाइट ने एस्सारी के जवाब से कुछ प्रेरणा के साथ बचाया।

Flatten@Nest[Range,{#},#]&

काफी सरल: इनपुट के लिए xहम साथ शुरू {x}और उसके बाद लागू Rangeइसे करने के लिए xबार ( Rangeहै Listableजिसका अर्थ है कि यह स्वचालित रूप से पूर्णांकों अंदर मनमाने ढंग से नेस्ट सूचियों पर लागू होता है)। अंत Flattenमें परिणाम।


2

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

(fn[n](nth(iterate #(mapcat(fn[x](range 1(inc x)))%)[n])n))

स्पष्टीकरण:

समस्या को हल करने के लिए वास्तव में सीधे आगे का रास्ता। अंदर से कार्य करना:

(1) (fn[x](range 1(inc x))) ;; return a list from 1 to x
(2) #(mapcat (1) %)         ;; map (1) over each item in list and flatten result
(3) (iterate (2) [n])       ;; call (2) repeatedly e.g. (f (f (f [n])))
(4) (nth (3) n))            ;; return the nth value of the iteration

2

पायथन 3, 75 74 बाइट्स

def f(k):N=[k];exec('A=N;N=[]\nfor i in A:N+=range(1,i+1)\n'*k+'print(N)')

यह कोड के लिए समस्या वर्णन का सिर्फ एक सीधा अनुवाद है।

संपादित करें: @Dennis के लिए एक बाइट धन्यवाद सहेजा गया।


आपका printबाहर जा सकता है exec
xnor

हाँ, यह वही है जो मेरे पास पहले था, लेकिन यह [k]किसी कारण से प्रिंट करता है। मैं यह पता लगाने की कोशिश कर रहा था कि यह एक गुंजाइश मुद्दा था या कुछ और।
एंड्रयू एपस्टीन

हां, यह एक स्कोप इश्यू जैसा दिखता है । यह पायथन 2 में ठीक काम करता है
xnor

2

आर, 60 49 बाइट्स

का बहुत सीधा unlistऔर सरल उपयोग sapply

y=x=scan();for(i in 1:x)y=unlist(sapply(y,seq));y

11 बाइट बचाने के लिए @ मिक्की का धन्यवाद


टिप के लिए @MickyT thx, मैं seqबाइट काउंट कम करने के लिए उपयोग कर सकता हूं
बाउंसीबॉल

क्षमा करें, मैंने प्रश्न को गलत
बताया

2

php 121

वास्तव में इस एक के पीछे चाल के तरीके में बहुत ज्यादा नहीं है। Php में एक सरणी समतल करना छोटा नहीं है, इसलिए इसे पहली जगह पर फ्लैट बनाना आवश्यक है

<?php for($a=[$b=$argv[1]];$b--;)$a=array_reduce($a,function($r,$v){return array_merge($r,range(1,$v));},[]);print_r($a);

इसे समतल रखना एक अच्छा विचार है। लेकिन कॉलबैक फ़ंक्शन भी कम नहीं हैं। आपको 15 बाइट्स से हराया। आप 4 बाइट्स को शॉर्ट टैग <?या 6 बाइट्स के साथ -rऔर बिना टैग के बचा सकते हैं ।
टाइटस

2

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

f n=iterate(>>= \a->[1..a])[n]!!n

एक बाइट को बचाने के लिए निम्मी को धन्यवाद।

एक पॉइंटफ्री संस्करण लंबा है (35 बाइट्स):

(!!)=<<iterate(>>= \a->[1..a]).pure

iterate(>>= \a->[1..a])एक बाइट कम के लिए।
निम्मी

2

जावास्क्रिप्ट (फ़ायरफ़ॉक्स 30-57), 63 60 बाइट्स

f=n=>eval(`[${`for(n of Array(n+1).keys())`.repeat(n--)}n+1]`)

@ Xnor के पायथन उत्तर का पोर्ट।


मैंने फ़ायरफ़ॉक्स 42 ( SyntaxError: missing : in conditional expression) और बैबल ( Unexpected token (1:21)) के साथ यह कोशिश की । मैं क्या गलत कर रहा हूं?
डेनिस

@ डेनिस क्षमा करें, लेकिन मुझे कोई पता नहीं है; मैं वास्तव में किसी कारण से मेरी एक मशीन पर फ़ायरफ़ॉक्स 42 है और मैंने डबल-चेक किया और यह वहां ठीक चला। (मैंने फ़ायरफ़ॉक्स 37 और 47 को भी निश्चित रूप से जांचा।)
नील

हुह, पृष्ठ ताज़ा नहीं हुआ और मैंने आपके पुराने संस्करण का परीक्षण किया। नया ठीक काम करता है।
डेनिस

@ डेनिस आह, यह )किसी भी तरह से उस संस्करण में एक आवारा क्रेप की तरह दिखता है ।
नील

1

जे, 18 बाइट्स

([:;<@(1+i.)"0)^:]

चुनौती में वर्णित प्रक्रिया के आधार पर सीधे-आगे का दृष्टिकोण।

प्रयोग

   f =: ([:;<@(1+i.)"0)^:]
   f 1
1
   f 2
1 1 2
   f 3
1 1 1 2 1 1 2 1 2 3
   f 4
1 1 1 1 2 1 1 1 2 1 1 2 1 2 3 1 1 1 2 1 1 2 1 2 3 1 1 2 1 2 3 1 2 3 4

व्याख्या

([:;<@(1+i.)"0)^:]  Input: n
                 ]  Identity function, gets the value n
(     ...     )^:   Repeat the following n times with an initial value [n]
      (    )"0        Means rank 0, or to operate on each atom in the list
         i.           Create a range from 0 to that value, exclusive
       1+             Add 1 to each to make the range from 1 to that value
    <@                Box the value
 [:;                  Combine the boxes and unbox them to make a list and return
                    Return the final result after n iterations



1

एफ #, 63 बाइट्स

fun n->Seq.fold(fun A _->List.collect(fun k->[1..k])A)[n]{1..n}

इनपुट के रूप में n लेने वाला एक अनाम फ़ंक्शन देता है।

ए में प्रत्येक प्रविष्टि k को [1..k] के साथ बदल देता है, प्रक्रिया n को दोहराता है, A = [n] से शुरू होता है।


1

स्विफ्ट 3, 58 बाइट्स

एक खेल के मैदान में सीधे चलाने के लिए, इनपुट के लिए n सेट के साथ:

var x=[n];for i in 0..<n{x=x.reduce([]){$0+[Int](1...$1)}}

अधिकांश शॉर्ट हैंड नोटेशन के साथ, अनगुल्फेड:

let n = 3 //input

var x: Array<Int> = [n]
for i in 0..<n {
    x = x.reduce(Array<Int>[], combine: { accumulator, element in
        accumulator + Array<Int>(1...element)
    })
}

1

जावा, 159 बाइट्स

प्रक्रिया

int[] q(int y){int z[]=new int[]{y};for(int i=0;i<y;i++){int d=0,a=0;for(int c:z)d+=c;int[]r=new int[d];for(int c:z)for(int j=0;j<c;)r[a++]=++j;z=r;}return z;}

प्रयोग

public static void main(String[] args){String out = "["; int [] b = q(6);for(int c:b)out+=c+", ";System.out.println(out+"]");}

public static int[] q(int y){int z[]=new int[]{y};for(int i=0;i<y;i++){int d=0,a=0;for(int c:z)d+=c;int[]r=new int[d];for(int c:z)for(int j=0;j<c;)r[a++]=++j;z=r;}return z;}

नमूना उत्पादन:

[1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, ]

1

पायथन 2, 69 68 66 बाइट्स

def f(n):a=[n];exec'a=sum([range(1,i+1)for i in a],[]);'*n;print a

संपादित करें: @xnor के लिए 1 बाइट का धन्यवाद सहेजा गया। @ डेनिस ed की बदौलत 2 बाइट्स बचाए।


आप आसपास के पार्न्स को हटा सकते हैं exec। पायथन 2 में, यह एक कीवर्ड है, एक फ़ंक्शन नहीं है। मैं 68 बाइट्स btw गिनता हूं।
डेनिस

@ डेनिस आह, इसका मतलब है कि मैंने गर्भपात कर दिया और यह मूल रूप से 69 बाइट्स था ...
नील

1

बैश + जीएनयू उपयोगिताओं, 49

  • 1 बाइट ने @ डेनिस को धन्यवाद दिया।

पाइप पुनरावर्ती कार्य FTW!

f()((($1))&&xargs -l seq|f $[$1-1]||dd)
f $1<<<$1

nकमांड लाइन पर पारित किया है। आउटपुट न्यूलाइन-सेपरेटेड है।

ddएसटीडीआरआर को भेजे जाने वाले कारणों के आंकड़ों का उपयोग । मुझे लगता है कि यह ठीक है, लेकिन यदि नहीं, तो ddइसे बदला जा सकता हैcat 1 अतिरिक्त बाइट की कीमत पर ।


1
डिफ़ॉल्ट रूप से STDERR को अत्यधिक आउटपुट की अनुमति है। आप एक बाइट को बचाने के {...;}साथ बदल सकते हैं (...)
डेनिस

@ डेनिस हां, बिल्कुल! जाहिरा तौर पर आपको यह टिप मुझसे मिली :)
डिजिटल ट्रॉमा

0

पर्ल 5, 53 बाइट्स

एक सबरूटीन:

{($i)=@_;for(1..$i){my@c;push@c,1..$_ for@_;@_=@c}@_}

इसे एक्शन में देखें

perl -e'print "$_ " for sub{($i)=@_;for(1..$i){my@c;push@c,1..$_ for@_;@_=@c}@_}->(3)'

0

रूबी, 61 बाइट्स

def f(n);a=[n];n.times{a=a.map{|i|(1..i).to_a}.flatten};a;end

नमस्ते! PPCG में आपका स्वागत है। एक संक्षिप्त विवरण अच्छा होगा!
द कॉफ़ी कॉप

PPCG में आपका स्वागत है! जब तक यह चुनौती खत्म नहीं हो जाती, तब तक सभी प्रस्तुतियाँ पूर्ण कार्यक्रमों या कार्यों के लिए होनी चाहिए , न कि केवल स्निपेट के रूप में। (और इस मामले में, चुनौती वास्तव में इस आवश्यकता की पुष्टि करती है।)
मार्टिन एंडर

0

PHP, 100 98 बाइट्स

साथ चलाना php -r '<code>' <n>

for($a=[$n=$argv[1]];$n--;$a=$b)for($b=[],$k=0;$c=$a[$k++];)for($i=0;$i++<$c;)$b[]=$i;print_r($a);

प्रत्येक पुनरावृत्ति में 1 से एक अस्थायी प्रतिलिपि लूपिंग बनाते हैं .. (पहला मान हटा दिया जाता है) जब तक $aकि खाली न हो।


ये दोनों अभी भी हैं और संभवतः 100 बाइट्स पर रहेंगे:

for($a=[$n=$argv[1]];$n--;)for($i=count($a);$i--;)array_splice($a,$i,1,range(1,$a[$i]));print_r($a);

प्रत्येक पुनरावृत्ति लूप में सरणी के माध्यम से पीछे की ओर प्रत्येक संख्या को एक सीमा के साथ प्रतिस्थापित किया जाता है।

for($a=[$n=$argv[1]];$n--;)for($i=$c=0;$c=$a[$i+=$c];)array_splice($a,$i,1,range(1,$c));print_r($a);

पिछले संख्या से सरणी वृद्धि सूचकांक के माध्यम से प्रत्येक पुनरावृत्ति लूप में और प्रत्येक अनुक्रमित तत्व को एक सीमा के साथ प्रतिस्थापित करना

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.