গণনা, প্রতিস্থাপন, পুনরাবৃত্তি!


18

সংজ্ঞা

নির্ধারণ এন নিম্নরূপ Curr ক্রম বিন্যাস।

  1. সিঙ্গলটন অ্যারে A = [n] দিয়ে শুরু করুন

  2. প্রতিটি পূর্ণসংখ্যা জন্য মধ্যে একজন , এন্ট্রি প্রতিস্থাপন সঙ্গে থেকে বেড়ে চলেছে, প্রাকৃতিক সংখ্যার 1 থেকে k

  3. আগের পদক্ষেপটি পুনরাবৃত্তি করুন এন - আরও 1 বার ।

উদাহরণস্বরূপ, যদি এন = 3 হয় আমরা অ্যারে [3] দিয়ে শুরু করব ।

আমরা 3 এর সাথে প্রতিস্থাপন করি[ 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] প্রদান করে । এটি তৃতীয় সিওআরআর অ্যারে।

কার্য

একটি ক্রিয়াকলাপের একটি প্রোগ্রাম লিখুন যা ইনপুট হিসাবে একটি কঠোর ইতিবাচক পূর্ণসংখ্যা n প্রদান করে, n সিআরআর অ্যারে গণনা করে ।

আউটপুটটি কোনও ধরণের ফ্ল্যাট তালিকা হতে হবে (এবং অ্যারেটি কোনও ফাংশন থেকে ফিরে আসে, আপনার ভাষার অ্যারে সিনট্যাক্সের একটি স্ট্রিং প্রতিনিধিত্ব, সাদা স্থান পৃথকীকরণ ইত্যাদি)।

এটি । বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয় হোক!

পরীক্ষার মামলা

 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]কোনও পূর্ণসংখ্যার চেয়ে ইনপুটটিকে সিঙ্গলটন অ্যারে (পছন্দ ) হিসাবে নিতে পারি ?
মেগো

@ মেগো এটি পূর্ণসংখ্যায় রাখুন keep
ডেনিস

আমি মনে করি এটির জন্য একটি OEIS ক্রম থাকা উচিত।
ড্যানইম্যান

@ ড্যান দিম্যান এটি বর্তমান রূপে কোনও পূর্ণসংখ্যার ক্রম নয়, তবে আমি অনুমান করি যে এটি ইতিবাচক পূর্ণসংখ্যার জন্য ফলাফলকে একত্রিত করে একটিতে পরিণত হতে পারে।
ডেনিস

উত্তর:



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ফাংশন ইনপুট সহ ।


এই কৌশলটি ফায়ারফক্স ৩০++ এও কাজ করে এবং আমাকে 3 বাইট সংরক্ষণ করেছে, ধন্যবাদ!
নিল

@ ডিজিটালট্রামা অজগর এবং জাভাস্ক্রিপ্ট উভয়েরই রয়েছে eval, স্পষ্টতই কোডটি নিজেই পোর্ট করা দরকার তবে আমি ভেবেছিলাম আপনি যেভাবেই তা ধরে নিতে পারেন।
নিল

@ নীল ওহ, আমি দেখতে পেয়েছি - আমি সম্পূর্ণ ভুল বুঝেছি :)
ডিজিটাল ট্রমা

12

05 এ বি 1 ই, 6 3 বাইট

DFL

ব্যাখ্যা

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

এটি অনলাইনে চেষ্টা করুন

@ আদনানকে 3 বাইট সংরক্ষণ করা হয়েছে


DFL3 বাইট সংক্ষিপ্ত :)
আদনান

1
@ আদনান: জানেন না এল তালিকায় এরকম কাজ করেছেন। কিছুটা অবাক হওয়ায় এটি স্বয়ংক্রিয়ভাবে ফ্ল্যাশ হয়ে যায়।
এমিগানা

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"*ƒএকটি বাইট সংরক্ষণ করুন
লিকি নুন

@ লেকিউন ভাল ক্যাচ - ;#@`♂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

ব্যাখ্যা:

  • +⍵: দিয়ে শুরু ,
  • ⍣⍵: নিম্নলিখিত বার করুন:
    • ⍳¨∘∊: ইনপুট সমতল করুন এবং তারপরে ইনপুটটিতে প্রতিটি এন এর জন্য একটি তালিকা তৈরি করুন [1..N]
  • : এর ফলাফল সমতল করুন

2
{(∊⍳¨)⍣⍵⊢⍵}
সরল

@ অ্যাডেম: আহ, হ্যাঁ, ট্রেনগুলি জে থেকে আলাদাভাবে কাজ করে I'd আমি শুরু {(∊∘(⍳¨))⍣⍵+⍵}করেছিলাম এবং তারপরে ভেবেছিলাম, কীভাবে আমি এই ধনুর্বন্ধনীগুলি থেকে মুক্তি পেতে পারি?
মেরিনাস


2

গণিত, 27 26 বাইট

এসারি এর উত্তর থেকে কিছু অনুপ্রেরণা দিয়ে 1 বাইট সংরক্ষণ করা হয়েছে।

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

মোটামুটি সহজবোধ্য: ইনপুট জন্য xআমরা দিয়ে শুরু {x}এবং তারপর আবেদন Rangeএটি xবার ( Rangeহয় Listableযার মানে এটি স্বয়ংক্রিয়ভাবে পূর্ণসংখ্যার ভিতরে ইচ্ছামত নেস্টেড তালিকা প্রযোজ্য)। শেষে Flattenফলাফল।


2

Clojure, 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)')

কোডটিতে সমস্যা বর্ণনার এটি কেবল একটি সরল অনুবাদ।

সম্পাদনা: @ ডেনিসকে ধন্যবাদ একটি বাইট সংরক্ষণ করা।


আপনার 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 বাইট সংরক্ষণ করার জন্য @ মিকিটিকে ধন্যবাদ


টিপটির জন্য @ মিকিটি থেক্স, আমি seqবাইট গণনা কমিয়ে ব্যবহার করতে পারি
বুন্সিবল

দুঃখিত আমি প্রশ্নটি ভুলভাবে
পড়েছি

2

পিএইচপি 121

এটির পিছনে কৌশলগুলি খুব বেশি নয়। পিএইচপি-তে একটি অ্যারের সমতল করা ছোট নয় তাই এটি প্রথম স্থানে ফ্ল্যাট তৈরি করা প্রয়োজন

<?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}

ইনপুট হিসাবে এন গ্রহণ করে একটি বেনামী ফাংশন প্রদান করে।

এ এর প্রতিটি এন্ট্রি কে কে প্রতিস্থাপন করে [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

সম্পাদনা করুন: @ এক্সনোরকে ধন্যবাদ 1 বাইট সংরক্ষিত @ ডেনিস to এর জন্য 2 বাইট সংরক্ষণ করা হয়েছে ♦


আপনি আশেপাশে পেরেনগুলি সরাতে পারেন exec। পাইথন 2 এ, এটি একটি কীওয়ার্ড, কোনও ফাংশন নয়। আমি 68 বাইট বিটিডব্লু গণনা করি।
ডেনিস

@ ডেনিস আহ, এর অর্থ আমি ভুল হিসাব করেছি এবং এটি মূলত 69 বাইট ছিল ...
নিল

1

বাশ + জিএনইউ ইউটিলিটিস, 49

  • @ ডেনিসকে ধন্যবাদ 1 বাইট সংরক্ষিত।

পাইপড রিকার্সিভ ফাংশন এফটিডাব্লু!

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

nকমান্ড লাইনে পাস করা হয়। আউটপুট নিউলাইন-পৃথক।

ddএসটিডিআরআরে প্রেরণের কারণগুলির পরিসংখ্যানগুলির ব্যবহার । আমি মনে করি এটি ঠিক আছে, তবে তা না হলে 1 অতিরিক্ত বাইট ব্যয়ে ddপ্রতিস্থাপন করা যেতে পারে cat


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

ওহে! পিপিসিজিতে আপনাকে স্বাগতম। একটি সংক্ষিপ্ত ব্যাখ্যা সুন্দর হবে!
দ্য কফিকপ

পিপিসিজিতে আপনাকে স্বাগতম! যতক্ষণ না চ্যালেঞ্জ এটিকে উপেক্ষা করে কেবলমাত্র স্নিপেট নয়, সমস্ত সাবমিশন পূর্ণ প্রোগ্রাম বা ফাংশন হওয়া দরকার । (এবং এই ক্ষেত্রে, চ্যালেঞ্জটি আসলে এই প্রয়োজনটিকে নিশ্চিত করে))
মার্টিন ইন্ডার

0

পিএইচপি, 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);

পূর্ববর্তী সংখ্যা অনুসারে অ্যারে ক্রমবর্ধমান সূচকের মাধ্যমে প্রতিটি পুনরাবৃত্তিতে লুপ এবং প্রতিটি ইনডেক্স উপাদানকে একটি ব্যাপ্তির সাথে প্রতিস্থাপন করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.