তালিকাগুলির ব্যাপ্তি


26

এই চ্যালেঞ্জটি হ'ল পাইথন রেঞ্জ ফাংশনের অনুরূপ পূর্ণসংখ্যার তালিকাগুলির তালিকা ফিরিয়ে দেওয়া, প্রতিটি ক্রমান্বয়ে সংখ্যার তালিকার গভীর হওয়া আবশ্যক।

বিধি :

  • একটি প্রোগ্রাম বা একটি অজ্ঞাতনামা ফাংশন তৈরি করুন
  • এটি ফলাফল ফিরে বা মুদ্রণ করা উচিত
  • ফলাফলটি একটি তালিকায় (তালিকার) বা অ্যারেতে (অ্যারেগুলির) ফিরে আসতে হবে
  • যদি প্যারামিটারটি শূন্য হয় তবে খালি তালিকাটি ফিরিয়ে দিন
  • এটি একটি পূর্ণসংখ্যা প্যারামিটার 0 <= n <70 পরিচালনা করতে সক্ষম হওয়া উচিত।
    • (পুনরাবৃত্ত সমাধানগুলি বেশ দ্রুত ফুঁ দিয়ে উঠেছে)
  • ফাংশনটি কেবলমাত্র একটি পরামিতি দিয়ে কল করা উচিত।
  • অন্যান্য আচরণ অপরিবর্তিত।
  • এটি কোড গল্ফ, তাই সংক্ষিপ্ততম কোড জয়ী।

উদাহরণ কল:

rangeList(6)
> [0, [1, [2, [3, [4, [5]]]]]]

পরীক্ষার কেস:

0  => []
1  => [0]
2  => [0, [1]]
6  => [0, [1, [2, [3, [4, [5]]]]]]
26 => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25]]]]]]]]]]]]]]]]]]]]]]]]]]
69 => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25, [26, [27, [28, [29, [30, [31, [32, [33, [34, [35, [36, [37, [38, [39, [40, [41, [42, [43, [44, [45, [46, [47, [48, [49, [50, [51, [52, [53, [54, [55, [56, [57, [58, [59, [60, [61, [62, [63, [64, [65, [66, [67, [68]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

সম্পাদনা: ইস্যাকের উত্তর এখন পর্যন্ত সংক্ষিপ্ততম। যদি কেউ চ্যালেঞ্জ পোস্টের সময় উপস্থিত কোনও ভাষায় একটি সংক্ষিপ্ত উত্তর খুঁজে পায় তবে আমি গৃহীত উত্তরটি আপডেট করব। খেলার জন্য ধন্যবাদ!


2
এলোমেলো মন্তব্য: মজার বিষয়টি কীভাবে শিরোনামের জন্য ন্যূনতম চরিত্রটি 15 হয় এবং আমি "তালিকাগুলির তালিকা" ব্যবহার করতে পারি না, তাই আমি ঘটনাস্থলে এটির সাথে উপস্থিত হয়েছি।
mbomb007

এটি বেশিরভাগই অনির্দিষ্ট নামহীন ফাংশনগুলি লেখা থেকে লোকদের রোধ করতে। ব্যক্তিগতভাবে, আমি এটি পছন্দ করতাম যদি এটি কোনও ফাংশন হয় যা কোনও পরামিতি নেয়।
mbomb007

এটিতে কী দুটি সহায়ক ফাংশন তৈরি করার অনুমতি রয়েছে, যেখানে একজন সহায়ক কর্ম?
প্রোগ্রামএফক্স

পছন্দ করুন আমি মনে করি আপনার ফাংশনের বাইরের কোডটি বেশ ভাল, যেহেতু উদাহরণস্বরূপ কেউ import mathপাইথনে যেতে চাইলে আমি মনে করি না এটি কোনও ফাংশনের অভ্যন্তরেই ঘটতে পারে।
mbomb007

@ ডেভনপারসনস এর প্রচুর প্রশ্ন রয়েছে যার মধ্যে একটি উদাহরণ রয়েছে যা ঠিক আছে তবে ঠিক আছে।
mbomb007

উত্তর:


11

পাইথ, 13 বাইট

?hu]+HG_UQYQY

এখানে চেষ্টা করুন।

                 Implicit:
                 Q = eval(input())
                 Y = []
?           QY   If Q = 0, print Y
 h               else, print the first element of
  u     _UQY     the reduce, where Y is the initial value, over the list
                 reversed(range(Q))
   ]+HG          The reduce function: The list containing H prepended onto G.
                 The new number is inserted into the accumulated list,
                 then the resultant list is wrapped in another list.

10

এপিএল ( 13 18)

ধরে নেওয়া ⎕IO=0:

f←{×⍵:⊃,∘⊂∘,/⍳⍵⋄⍬}

ব্যাখ্যা:

  • ×⍵:যদি ইতিবাচক হয়,
    • ,∘⊂∘,: ডান অপরেন্ড (যেমন x ,∘⊂∘, y = [x, [y]]) এর ঘেরে বাম অপারেণ্ডে যোগ দিন
    • /: হ্রাস
    • ⍳⍵: সংখ্যা 0..⍵-1
    • : ফলাফল প্রকাশ
  • : অন্যথায়
    • : খালি তালিকাটি ফিরিয়ে দিন
    • (এটি প্রয়োজনীয় কারণ এটি /ব্যর্থ হয় এবং ⍳0খালি তালিকা দেয়))

সংযোজন:

এই ফাংশনটি নেস্টেড অ্যারে প্রদান করে। তবে এপিএলের ডিফল্ট আউটপুট থেকে এটি বলা কিছুটা শক্ত। এটি অ্যারে আইটেমগুলিকে স্পেস দ্বারা পৃথক করে, তাই আপনি কেবল ডাবল স্পেস দ্বারা নেস্টিং বলতে পারবেন। এখানে একটি ফাংশন রয়েছে যা নেস্টেড অ্যারে নেবে এবং স্ট্রিংটি ফিরিয়ে দেবে, নেস্টেড অ্যারেটিকে পাইথন স্টাইলে (যেমন [a,[b,[c,...]]]) ফর্ম্যাট করে ।

arrfmt←{0=≡⍵:⍕⍵ ⋄ '[',(1↓∊',',¨∇¨⍵),']'}

1
আমি মনে করি আপনার ঘেরের পরে অন্য need দরকার, অন্যথায় (কমপক্ষে আমার দোভাষী - ডায়ালগ ১৪) শেষ উপাদানটি আবদ্ধ নয়। যেমন [0 [1 [2 3]]]
মরিস জুচা

@মারিনাস আপনি দয়া করে এটি যাচাই করতে পারেন?
mbomb007

আমি এক বা দু'দিন আগে সমস্যার বিবৃতি পরিবর্তন করেছি যে সংজ্ঞায়িত ফাংশনগুলি একটি ভেরিয়েবলের জন্য বরাদ্দ করা উচিত। f←আপনার প্রোগ্রামটির শুরুতে যুক্ত করা উচিত যদি না আপনি এটির ব্যবহারকারীর ইনপুট গ্রহণের জন্য পরিবর্তন করেন।
mbomb007

এছাড়াও, আউটপুটটি তালিকাতে সংখ্যার স্পষ্টরূপে পরিবর্তিত হয় কতটা গভীরভাবে তা দেখায় না ... প্রতিটি স্থান কি একটি অন্তর্নির্মিত বন্ধনী?
mbomb007

@ মরিসজুকা আমাকে একমত হতে হবে : এখানে দেখুন ngn.github.io/apl/web/#code=%7B%D7%u2375%3A%2C%u2218%u2282/...
mbomb007

9

হাস্কেল, 67 বাইট

data L=E|I Int|L[L] 
1#m=L[I$m-1]
n#m=L[I$m-n,(n-1)#m]
p 0=E
p n=n#n

হাসকেলে একটি তালিকার সমস্ত উপাদান একই ধরণের হতে হবে, সুতরাং আমি পূর্ণসংখ্যার তালিকার সাথে পূর্ণসংখ্যার মিশ্রণ করতে পারি না এবং আমাকে একটি কাস্টম তালিকার ধরণের সংজ্ঞা দিতে হবে L। সহায়ক ফাংশন #পুনরাবৃত্তভাবে প্রয়োজনীয় তালিকাটি তৈরি করে। মূল ফাংশন pখালি তালিকার জন্য পরীক্ষা করে এবং #অন্যথায় কল করে ।

যেহেতু নতুন ডেটা টাইপগুলি ডিফল্ট হিসাবে মুদ্রণ করা যায় না (নিয়মগুলি কেবল তালিকাটি ফেরত দেওয়ার অনুমতি দেয়), তাই আমি প্রদর্শনের উদ্দেশ্যে আরও কিছু কোড যুক্ত করি:

data L=E|I Int|L[L] deriving Show

এখন:

-- mapM_ (print . p) [0..5]
E
L [I 0]
L [I 0,L [I 1]]
L [I 0,L [I 1,L [I 2]]]
L [I 0,L [I 1,L [I 2,L [I 3]]]]
L [I 0,L [I 1,L [I 2,L [I 3,L [I 4]]]]]

7

পাইথন, 48 বাইট

f=lambda n,i=0:i<n and[i]+[f(n,i+1)]*(i<n-1)or[]

বিশেষ কেসটি হ্যান্ডেল করার জন্য তালিকাটির গুণক ব্যবহার করা।


আমি মনে করি না এটি পাইথন 2 নির্দিষ্ট - এটি অজগরগুলিতে কাজ করে বলে মনে হচ্ছে।
isaacg

@ আইস্যাকগ ফিক্সড। আমার আসল
জমাটি

একটি ছোট চর-সংরক্ষণ: *(i<n-1)হিসাবে [:n+~i]এটি করা যেতে পারে , যেহেতু এটি একটি সিঙ্গলটন তালিকা।
xnor


5

সিজেম, 16 বাইট

Lri){[}%]~;']*~p

এটি একটি সম্পূর্ণ প্রোগ্রাম। এটি STDIN এর মাধ্যমে ইনপুট নেয় এবং STDOUT এ চূড়ান্ত অ্যারে প্রিন্ট করে।

অন্যান্য সিজেএম এন্ট্রি হিসাবে, 0ইনপুট মুদ্রণ করবে ""কারণ এটি সিজেমে একটি ফাঁকা অ্যারের উপস্থাপনা।

এটি কীভাবে কাজ করে :

L                   "Put an empty array on stack. This will be used for the 0 input";
 ri)                "Read the input, convert it to integer and increment it";
    {[}%            "Map over the array [0 ... input number] starting another array";
                    "after each element";
        ]~;         "Now on stack, we have input number, an empty array and the final";
                    "opening bracket. Close that array, unwrap it and pop the empty array";
           ']*~     "Put a string containing input number of ] characters and eval it";
                    "This closes all the opened arrays in the map earlier";
               p    "Print the string representation of the array";
                    "If the input was 0, the map runs 1 time and the ; pops that 1 array";
                    "Thus leaving only the initial empty array on stack";

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


3

জাভাস্ক্রিপ্ট (ES6) 40

পুনরাবৃত্তির সমাধান, বেশ শক্তিশালী, কোনও আঘাত নেই। 'অত্যধিক পুনরাবৃত্তি' দিয়ে 6500 এর কাছাকাছি আপডেট ব্যর্থ হয়েছে

F=n=>n--?(R=m=>m<n?[m,R(++m)]:[m])(0):[]

Iterative সমাধান (45) মেমরি ব্যবহার ব্যতীত কোনও সীমা নেই

F=n=>{for(s=n?[--n]:[];n;)s=[--n,s];return s}

এফ (1000) ব্যবহার করে দেখুন: ফায়ারব্যাগ কনসোল আপনাকে 190 টিরও বেশি নেস্টেড অ্যারে প্রদর্শন করবে না, তবে তারা সেখানে রয়েছে


3

জাভা, 88 107 105 104 102 বাইট

import java.util.*;int o;List f(final int n){return new Stack(){{add(n<1?"":o++);if(o<n)add(f(n));}};}

অন্যদের সাথে তুলনা করে অনেক দীর্ঘ, যদিও আপনি জাভা দিয়ে আরও কিছু করতে পারেন না। পুনরাবৃত্তি চালিয়ে যাওয়া যায় কিনা তা নির্ধারণের জন্য একটি চেক যা লাগে তা সমস্ত।


আপনাকে করার প্রয়োজন import java.util.*;এই আত্ম ধারণকারী হতে জন্য (অথবা সম্পূর্ণরূপে যোগ্যতা অর্জন java.util.Listএবং java.util.Stack, কিন্তু যে অনেক দীর্ঘ হওয়ার)। +১৯ এটি 107 করার জন্য, আমি যে জাভা
উত্তরটিতে

আমি সংরক্ষণ o!=nকরতে পারে এমন দুটি দেখতে পাচ্ছি: হতে পারে o<n, এবং আপনি এই অংশটি পরিবর্তন করতে পারেন o<n?o++:""
জিওবিটস

জাভা 8-এ আমি বিশ্বাস করি finalউপর int nসরানো হতে পারে।
জাস্টিন

2

পাইথন 2, 56 বাইট

আমি সন্দেহ করি এটি আরও গল্ফ করা যেতে পারে।

f=lambda n,i=0:[i,f(n,i+1)]if i<n-1 else[i]if n>0 else[]

পরীক্ষা:

# for n in (0,1,2,6,26,69): print n, '=>', f(n)
0 => []
1 => [0]
2 => [0, [1]]
6 => [0, [1, [2, [3, [4, [5]]]]]]
26 => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25]]]]]]]]]]]]]]]]]]]]]]]]]]
69 => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25, [26, [27, [28, [29, [30, [31, [32, [33, [34, [35, [36, [37, [38, [39, [40, [41, [42, [43, [44, [45, [46, [47, [48, [49, [50, [51, [52, [53, [54, [55, [56, [57, [58, [59, [60, [61, [62, [63, [64, [65, [66, [67, [68]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

আচ্ছা, আপনি আমার পাইথন সলিউশনটি মারলেন।
mbomb007

2

সিজেম, 17 বাইট

আমি জানি অপ্টিমাইজারটি 16 টি পেয়েছে তবে আমি এখানে সেরা সেরা করতে পারি:

{:I{[}%;{]}I1e>*}

এটি একটি ব্লক, সিজেমে কোনও ফাংশনের নিকটতম জিনিস, যা স্ট্যাকের উপর একটি পূর্ণসংখ্যা নেয় এবং পছন্দসই নেস্টেড অ্যারে ছেড়ে দেয়।

এটি পরীক্ষা করার জন্য এই প্রোগ্রামটি ব্যবহার করুন , যা স্ট্যাকটিতে ইনপুট রাখে, তারপরে ফাংশনটি কল করে এবং স্ট্যাকটি পরীক্ষা করে। মনে রাখবেন যে 0, স্ট্যাক আউটপুটটিতে এটি থাকবে ""- এটি সিজামের খালি অ্যারের স্থানীয় প্রতিনিধিত্ব।



2

সি # - 100

সাধারণ পুনরাবৃত্তি। শূন্যের বিশেষ কেসটি পরীক্ষা করে দেখুন এবং একটি ভেরিয়েবলের সাথে অন্যটির সাথে টিক চিহ্ন দিন

object[]A(int y,int x=0){return y==0?new object[0]:y==1?new object[]{x}:new object[]{x,A(--y,++x)};}

সি ++ 87

(ভিজ্যুয়াল সি ++ 2012)

int*A(int y,int x=0){int*b=new int{x};return!y?new int:--y?(b[1]=(int)A(y,++x))?b:0:b;}

এটি দুর্দান্ত, যার দ্বারা আমি বাইজেন্টাইন বলতে চাইছি, তবে এটি সি # একের মতো একই প্রাথমিক ধারণা।

এটি সি স্টাইলের অ্যারে বাস্তবায়ন, সুতরাং এটি আপনাকে কোনও অ্যারে দেয় না, এটি একটি ইনট পয়েন্টার দেয়, যার মধ্যে আমি উভয়ই ইনস এবং অন্যান্য পয়েন্টার সংরক্ষণ করে যাচ্ছিলাম। [0,*] *->[1,#] #-> [2,&] &-> etcএটির মতো: যেখানে প্রতীকগুলি পয়েন্টারের অন্তর্নির্মিত মানটির জন্য সিউডো কোড এবং -> যেখানে এটি মেমোরিতে নির্দেশ করে।

সি স্টাইলের ঝাঁকুনিযুক্ত অ্যারেগুলি প্রয়োগ করার জন্য কী দুর্দান্ত এক সহজ সহজ উপায় (কাশি), কিন্তু আমি এটিকে প্রশ্নের নিয়মের মধ্যে থাকতে যথেষ্ট প্রশংসনীয় বজায় রেখেছি।

এখানে টার্নারি অপারেটরদের প্রচুর গালিগালাজ করা হয়, এবং অন্তর্নিহিত থেকে কুলকে বোঝানো গালিটিও বেশ কিছু হয় of

উদাহরণ: যদি আমরা করি তবে আমরা int *bar = (int*)A(3);দেখতে পাচ্ছি:

bar
0x003bded8 {0}
((int*)bar[1])[0]
1
((int*)(((int*)bar[1])[1]))[0]
2

যা [0, [1, [2]]] এর জন্য পয়েন্টার টক।

ঠিক আছে ভালো. এটি আসলে ভয়াবহ হতে হবে না। এই সি ++ কোডটি চালানোর জন্য এখানে কিছু পরীক্ষার কোড দেওয়া হয়েছে:

int* GetNext(int* p){
  return (int*)p[1];
}

int main()
{
    auto x = 10;
    auto bar = A(x);

    for (int i = 1; i < x; i++){
        bar = GetNext(bar);
        std::cout << bar[0] << std::endl;
    }

}


সি ++ সংস্করণ সংকলন করে না। ideone.com/fmcXYP
আনমল সিং

আপনার পাশাপাশি ব্যবহার করা সংকলকটি উল্লেখ করা উচিত C++
আনমল সিং জাগি

@ আনমোলসিংহ জাগি হ্যাঁ, ভাল ধারণা। ভিজ্যুয়াল সি ++ 2012, যা বেশিরভাগ সি ++ 11 এর সাথে অনুগত।
নাথান কুপার

পুরানো পোস্ট, তবে কিছু ঝুঁকির সাথে আমি এটিকে 86 এ নামিয়েছি । Array g(params object[]a)=>a;Array f(int y,int x=0)=>y<1?g():y<2?g(x):g(x,f(y-1,x+1));
দানা

2

পাইথ, 15 বাইট

?u[HG)_UtQ]tQQY

পাইথনে যা সত্যিই বলছে:

Q = eval(input())
if Q:
    print reduce(lambda G,H:[H,G], reverse(range(Q-1)), [Q-1])
else:
    print []

আরে, আপনি পাইথ শিখতে পেরে আমি আনন্দিত! আপনি যদি মূল্যায়িত ইনপুট জেনারেট করতে চান তবে আপনি Q ব্যবহার করতে পারেন যা এটি আপনার জন্য করে। এছাড়াও, ওয়াই এর পূর্বনির্ধারণ হয় []।
isaacg

qJ_1হিসাবে একই !Q। এবং JtQআসলে 1 বাইট বর্জ্য। ?Y!Qu[HG)_UtQ[tQ
জাকুবে

ঠিক আছে আমি by বাইট নেব।
স্বতঃস্ফীতি

@swstephe আপনি পরিবর্তন করেন তাহলে [tQথেকে ]tQ, যা সমতূল্য, আপনি অপারেশন অর্ডার অদলবদল ?, তাই আপনি প্রতিস্থাপন করতে পারেন !Qসঙ্গে Q। এর ফলাফল ?u[HG)_UtQ]tQQY- আরও 1 বাইট সংরক্ষণ করা হয়েছে।
isaacg

2

হাস্কেল , 65 59 45 41 বাইট

এই নেস্টেড তালিকাগুলি মূলযুক্ত Treeগুলি হিসাবে একই ডেটা-কাঠামো , এগুলি বাদে খালিও থাকতে পারে। অতএব, আমরা তাদের একটি তালিকা ব্যবহার করতে পারি - Forestতাদের প্রতিনিধিত্ব করার জন্য এটিকেও বলা হয়।

(0!)
data T=N[T]Int
m!n=[N((m+1)!n)m|m<n]

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

ব্যাখ্যা

সবার আগে আমাদের Treeডেটা প্রকারটি প্রয়োগ করতে হবে :

data Tree = Node [Tree] Int

সেখান থেকে এটি দুটি পরামিতি m(গণনা করা) ব্যবহার করে এবং nকখন শেষ হবে তা ট্র্যাক রাখতে কেবল পুনরাবৃত্তি :

m ! n= [ Node ((m+1)!n) m| m<n ]

বিকল্প, 61 বাইট

import Data.Tree
f n=unfoldForest(\b->(b,[b+1|b<n-1]))[0|n>0]

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

ব্যাখ্যা

ফাংশনটি unfoldForestপ্রাথমিক মানগুলির একটি তালিকা এবং একটি ফাংশন নেয় x -> (y,[x])। প্রতিটি প্রাথমিক মানের জন্য xএটি ফাংশনটি ব্যবহার করে একটি গাছকে উদ্ভাসিত করে এমন একটি টুপল তৈরি করে (y,xs)যেখানে yমূল হয়ে উঠবে এবং xsপদ্ধতিটি পুনরাবৃত্তি করতে ব্যবহৃত হয়:

unfoldForest (\b -> (b, [b+1 | b < 2]) [0]
   Node 0 [unfoldForest (\b -> (b, [b+1 | b < 2) [1]]
   Node 0 [Node 1 [unfoldForest (\b -> (b, [b+1 | b < 2) []]]
   Node 0 [Node 1 []]

1

পার্ল - 44

sub t{$r=[($t)=@_];$r=[$t,$r]while--$t>0;$r}

অনুরোধের পরে ব্যাখ্যা যোগ করবে। আপনি এটি এখানে চেষ্টা করতে পারেন ।


আমি ভাবছি, কারণ আমি পার্লের সাথে পরিচিত নই - সবচেয়ে গভীরভাবে নেস্টেড অ্যারেতে কি 2 টি উপাদান রয়েছে, একজন হচ্ছেন nilবা সমতুল্য যা কিছু? আমি জিজ্ঞাসা করছি কারণ আপনি যে পৃষ্ঠায় লিঙ্কটি অন্তর্লীন অ্যারের সাথে দেখছেন তা দেখে মনে হচ্ছে(3,)
ডেভন পার্সসন

1
এটি পাঠযোগ্য উপায়ে মুদ্রণ করতে আমি যুক্ত কোডটি ডিভন পার্সন করে প্রতিটি উপাদানগুলির পরে কমা যোগ করি। পার্ল বা undefএর সমতুল্য এবং কোনও অতিরিক্ত উপাদান নেই। পার্ল অ্যারে সমতল করে যাতে এটি নেস্টেড অ্যারে রেফারেন্স তৈরি করে। nilnull
hmatt1

1

জাভাস্ক্রিপ্ট, 93 বাইট

এটি আদর্শ নয়, তবে আমি এটি চেষ্টাও করতে পারি। আমি পরে আরও চেষ্টা করব এবং গল্ফ করব, যদিও আপাতত আমি এর কোনও সুস্পষ্ট উপায় দেখছি না।

function f(n){s='[';i=0;while(i<n-1)s+=i+++',[';s+=i||'';do{s+=']'}while(i--);return eval(s)}

আপনি সংঘাতের সমাধান তৈরি করার চেষ্টাও করতে পারেন, কারণ এটি সংক্ষিপ্ত হতে পারে।
mbomb007

1

পাইথন, 75 বাইট

এটি কেবল প্রদর্শনের জন্য। এই চ্যালেঞ্জটি তৈরি / ডিজাইন করার সময় এটি আমিই লিখেছি

f=lambda x,y=[]:y if x<1 else f(x-1,[x-2]+[y or[x-1]])if x>1 else y or[x-1]

1

পাইথন, 44

f=lambda n,i=0:i<n-1and[i,f(n,i+1)]or[i][:n]

পুনরাবৃত্তভাবে গাছ তৈরি করে। [:n]শেষে বিশেষ-কেস হয় n==0খালি তালিকা দান করুন।


এই চ্যালেঞ্জের সময়ই আমি বুঝতে পেরেছিলাম andএবং orপূর্ণসংখ্যার পাশে ফাঁকা স্থান বাদ দিতে পারে, কিন্তু elseপারে না।
mbomb007

@ mbomb007 কারণ এটি elseশুরু হয় eএবং এর মতো জিনিসগুলি 1e6বৈধ সংখ্যার আক্ষরিক।
xnor

আমি এটি জানতাম, তবে আমি জানতাম না কেন এটি। ধন্যবাদ।
mbomb007

1
@ mbomb007 প্রকৃতপক্ষে ২.6 বা ২.7 এর পরে বা আপনি আগের জায়গাটি হারাতে পারেনelse , যেমন, x = 1 if y==2else 5কাজ করে।
Sp3000

এটি পাইথন ২.7.২ এ কাজ করে না repl.it/eB6 (তবে এটি 3.4 তে কাজ করে)
mbomb007

1

জো , 8 বাইট

দ্রষ্টব্য: এটি একটি প্রতিযোগিতামূলক উত্তর। এই প্রশ্নের পরে জোয়ের প্রথম সংস্করণ প্রকাশিত হয়েছিল।

F:/+,M]R

এখানে আমাদের কি আছে? F:একটি ফাংশন এফ সংজ্ঞা দেয় যা একটি চেইন /+,, M]এবং R। আপনি যখন কল করবেন Fn, প্রথমে Rnমূল্যায়ন হবে, একচেটিয়া থেকে শুরু করে 0 থেকে n অবধি। M]প্রতিটি উপাদান একটি তালিকায় আবৃত করে। তারপরে তালিকাটি প্রয়োগ করা হয় /+,x +, y আয় x + [y]/একটি ডান ভাঁজ হয়। এইভাবে, /+,a b c d...রিটার্ন [a, [b, [c, [d...]]]

উদাহরণসমূহের অনুরোধ (কোডটি 3 দ্বারা আটকানো হয়, 0 দ্বারা আউটপুট থাকে):

   F:/+,M]R
   F10
[0, [1, [2, [3, [4, [5, [6, [7, [8, [9]]]]]]]]]]
   F2
[0, [1]]
   F1
[0]
   F0
[]
   F_5
[0, [-1, [-2, [-3, [-4]]]]]

1

রুবি - পুনরাবৃত্ত সংস্করণ - 52

r=->(n,v=nil){(n-=1;n<0 ?v:r[n,(v ?[n,v]:[n])])||[]}

অপরিবর্তিত সংস্করণ: 66 62 57

r=->i{(i-1).downto(0).inject(nil){|a,n|a ?[n,a]:[n]}||[]}

নমুনা আউটপুট (উভয় সংস্করণের জন্য একই)

p r[0]  # => []
p r[1]  # => [0]
p r[2]  # => [0, [1]]
p r[6]  # => [0, [1, [2, [3, [4, [5]]]]]]
p r[26] # => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25]]]]]]]]]]]]]]]]]]]]]]]]]]
p r[69] # => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25, [26, [27, [28, [29, [30, [31, [32, [33, [34, [35, [36, [37, [38, [39, [40, [41, [42, [43, [44, [45, [46, [47, [48, [49, [50, [51, [52, [53, [54, [55, [56, [57, [58, [59, [60, [61, [62, [63, [64, [65, [66, [67, [68]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

পুনরাবৃত্তিযোগ্য সংস্করণ যথেচ্ছভাবে বড় ইনপুট পরিচালনা করতে পারে।

p r[1000] # => [0, [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20, [21, [22, [23, [24, [25, [26, [27, [28, [29, [30, [31, [32, [33, [34, [35, [36, [37, [38, [39, [40, [41, [42, [43, [44, [45, [46, [47, [48, [49, [50, [51, [52, [53, [54, [55, [56, [57, [58, [59, [60, [61, [62, [63, [64, [65, [66, [67, [68, [69, [70, [71, [72, [73, [74, [75, [76, [77, [78, [79, [80, [81, [82, [83, [84, [85, [86, [87, [88, [89, [90, [91, [92, [93, [94, [95, [96, [97, [98, [99, [100, [101, [102, [103, [104, [105, [106, [107, [108, [109, [110, [111, [112, [113, [114, [115, [116, [117, [118, [119, [120, [121, [122, [123, [124, [125, [126, [127, [128, [129, [130, [131, [132, [133, [134, [135, [136, [137, [138, [139, [140, [141, [142, [143, [144, [145, [146, [147, [148, [149, [150, [151, [152, [153, [154, [155, [156, [157, [158, [159, [160, [161, [162, [163, [164, [165, [166, [167, [168, [169, [170, [171, [172, [173, [174, [175, [176, [177, [178, [179, [180, [181, [182, [183, [184, [185, [186, [187, [188, [189, [190, [191, [192, [193, [194, [195, [196, [197, [198, [199, [200, [201, [202, [203, [204, [205, [206, [207, [208, [209, [210, [211, [212, [213, [214, [215, [216, [217, [218, [219, [220, [221, [222, [223, [224, [225, [226, [227, [228, [229, [230, [231, [232, [233, [234, [235, [236, [237, [238, [239, [240, [241, [242, [243, [244, [245, [246, [247, [248, [249, [250, [251, [252, [253, [254, [255, [256, [257, [258, [259, [260, [261, [262, [263, [264, [265, [266, [267, [268, [269, [270, [271, [272, [273, [274, [275, [276, [277, [278, [279, [280, [281, [282, [283, [284, [285, [286, [287, [288, [289, [290, [291, [292, [293, [294, [295, [296, [297, [298, [299, [300, [301, [302, [303, [304, [305, [306, [307, [308, [309, [310, [311, [312, [313, [314, [315, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [326, [327, [328, [329, [330, [331, [332, [333, [334, [335, [336, [337, [338, [339, [340, [341, [342, [343, [344, [345, [346, [347, [348, [349, [350, [351, [352, [353, [354, [355, [356, [357, [358, [359, [360, [361, [362, [363, [364, [365, [366, [367, [368, [369, [370, [371, [372, [373, [374, [375, [376, [377, [378, [379, [380, [381, [382, [383, [384, [385, [386, [387, [388, [389, [390, [391, [392, [393, [394, [395, [396, [397, [398, [399, [400, [401, [402, [403, [404, [405, [406, [407, [408, [409, [410, [411, [412, [413, [414, [415, [416, [417, [418, [419, [420, [421, [422, [423, [424, [425, [426, [427, [428, [429, [430, [431, [432, [433, [434, [435, [436, [437, [438, [439, [440, [441, [442, [443, [444, [445, [446, [447, [448, [449, [450, [451, [452, [453, [454, [455, [456, [457, [458, [459, [460, [461, [462, [463, [464, [465, [466, [467, [468, [469, [470, [471, [472, [473, [474, [475, [476, [477, [478, [479, [480, [481, [482, [483, [484, [485, [486, [487, [488, [489, [490, [491, [492, [493, [494, [495, [496, [497, [498, [499, [500, [501, [502, [503, [504, [505, [506, [507, [508, [509, [510, [511, [512, [513, [514, [515, [516, [517, [518, [519, [520, [521, [522, [523, [524, [525, [526, [527, [528, [529, [530, [531, [532, [533, [534, [535, [536, [537, [538, [539, [540, [541, [542, [543, [544, [545, [546, [547, [548, [549, [550, [551, [552, [553, [554, [555, [556, [557, [558, [559, [560, [561, [562, [563, [564, [565, [566, [567, [568, [569, [570, [571, [572, [573, [574, [575, [576, [577, [578, [579, [580, [581, [582, [583, [584, [585, [586, [587, [588, [589, [590, [591, [592, [593, [594, [595, [596, [597, [598, [599, [600, [601, [602, [603, [604, [605, [606, [607, [608, [609, [610, [611, [612, [613, [614, [615, [616, [617, [618, [619, [620, [621, [622, [623, [624, [625, [626, [627, [628, [629, [630, [631, [632, [633, [634, [635, [636, [637, [638, [639, [640, [641, [642, [643, [644, [645, [646, [647, [648, [649, [650, [651, [652, [653, [654, [655, [656, [657, [658, [659, [660, [661, [662, [663, [664, [665, [666, [667, [668, [669, [670, [671, [672, [673, [674, [675, [676, [677, [678, [679, [680, [681, [682, [683, [684, [685, [686, [687, [688, [689, [690, [691, [692, [693, [694, [695, [696, [697, [698, [699, [700, [701, [702, [703, [704, [705, [706, [707, [708, [709, [710, [711, [712, [713, [714, [715, [716, [717, [718, [719, [720, [721, [722, [723, [724, [725, [726, [727, [728, [729, [730, [731, [732, [733, [734, [735, [736, [737, [738, [739, [740, [741, [742, [743, [744, [745, [746, [747, [748, [749, [750, [751, [752, [753, [754, [755, [756, [757, [758, [759, [760, [761, [762, [763, [764, [765, [766, [767, [768, [769, [770, [771, [772, [773, [774, [775, [776, [777, [778, [779, [780, [781, [782, [783, [784, [785, [786, [787, [788, [789, [790, [791, [792, [793, [794, [795, [796, [797, [798, [799, [800, [801, [802, [803, [804, [805, [806, [807, [808, [809, [810, [811, [812, [813, [814, [815, [816, [817, [818, [819, [820, [821, [822, [823, [824, [825, [826, [827, [828, [829, [830, [831, [832, [833, [834, [835, [836, [837, [838, [839, [840, [841, [842, [843, [844, [845, [846, [847, [848, [849, [850, [851, [852, [853, [854, [855, [856, [857, [858, [859, [860, [861, [862, [863, [864, [865, [866, [867, [868, [869, [870, [871, [872, [873, [874, [875, [876, [877, [878, [879, [880, [881, [882, [883, [884, [885, [886, [887, [888, [889, [890, [891, [892, [893, [894, [895, [896, [897, [898, [899, [900, [901, [902, [903, [904, [905, [906, [907, [908, [909, [910, [911, [912, [913, [914, [915, [916, [917, [918, [919, [920, [921, [922, [923, [924, [925, [926, [927, [928, [929, [930, [931, [932, [933, [934, [935, [936, [937, [938, [939, [940, [941, [942, [943, [944, [945, [946, [947, [948, [949, [950, [951, [952, [953, [954, [955, [956, [957, [958, [959, [960, [961, [962, [963, [964, [965, [966, [967, [968, [969, [970, [971, [972, [973, [974, [975, [976, [977, [978, [979, [980, [981, [982, [983, [984, [985, [986, [987, [988, [989, [990, [991, [992, [993, [994, [995, [996, [997, [998, [999]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

উভয় সংস্করণ করুণভাবে নেতিবাচক সংখ্যা গ্রহণ করে accept

p r[-5] # => []

শুধু কৌতূহলী, কোন মান অনুসারে পুনরাবৃত্ত সমাধানটি ব্যর্থ হয় (মেমরি / স্ট্যাক ওভারফ্লো কারণে)?
mbomb007

@ mbomb007 উইন্ডোজ 7 x64, 16 জিবি র‌্যামে এটি 926 এ কাজ করে এবং 927 ( stack level too deep (SystemStackError)) এ ব্যর্থ হয়
ডিভন পার্সসন

0

পিএইচপি 5.4 (67 বাইট):

আমি জানি আমি জানি.

এটি সংক্ষিপ্ত উত্তর হওয়া খুব দূরে।

কিন্তু এটি কাজ করে!

এটা এখানে:

function F($n){for($c=$n?[--$n]:[];~$n&&$n--;$c=[$n,$c]);return$c;}

আপনি এখনই এটি পরীক্ষা করতে পারেন: https://ideone.com/42L35E (ত্রুটি উপেক্ষা করুন)


জাভাস্ক্রিপ্ট (57 বাইট):

জাভাস্ক্রিপ্টটি ফিরে আসার বিষয়ে পিক এবং আমি পরিবর্তনশীল নামগুলি হ্রাস করেছি ব্যতীত এটি একই সঠিক কোড :

function F(n){for(c=n?[--n]:[];~n&&n--;c=[n,c]);return c}

দেখুন? একই কোড!


ES6 (49 বাইট):

মূলত একই সঠিক কোড, তবে ES6 এর জন্য হ্রাস:

F=n=>{for(c=n?[--n]:[];~n&&n--;c=[n,c]);return c}

আমি কোনও বেনাম ফাংশন নির্দিষ্ট করে নেই, বা এটি কোথাও মন্তব্যে ছিল। আমি এটি আরও পরিষ্কার করব।
mbomb007

@ mbomb007 এটি নির্দিষ্ট করা হয়নি। এই কার্যক্রমে কোনও নাম প্রয়োগ করার কিছুই ছিল না । তবে আমি এটি পরিবর্তন করেছি।
ইসমাইল মিগুয়েল

প্রশ্নের নীচে আমার দ্বারা একটি মন্তব্য ছিল: "এটি বেশিরভাগ লোকজনকে অপ্রত্যাশিত বেনামে ফাংশন লিখতে বাধা দেওয়ার জন্য Pers ব্যক্তিগতভাবে, আমি এটি পছন্দ করতাম যদি এটি কোনও পরামিতি নেয় এমন ফাংশন ছিল।"
mbomb007

এবং আমি করেনি প্রশ্নটি পালটানো। কিন্তু এটা কাজকর্মের জন্য চমত্কার মান codegolf নামে callable হতে হবে যে, তারা এর (ওরফে, আরো একবার এবং সমগ্র ফাংশন আবার না লিখেই চেয়ে।) কেন আপনি অন্য সবাই দেখতে ব্যবহার যে ফাংশন f=lambda...
mbomb007

@ mbomb007 But it's pretty standard codegolf for functions that they have to be callable by name (aka, more than once and without typing the entire function again.)-> এ সম্পর্কে কখনও শুনিনি, এবং আমি এই ওয়েবসাইটটি প্রায় এক বছরের কাছাকাছি ব্যবহার করি। এছাড়াও, এটি একটি অবৈধ যুক্তি, যেহেতু আপনি ভেরিয়েবলের জন্য কার্যগুলি নির্ধারণ করতে পারেন।
ইসমাইল মিগুয়েল

0

জাভাস্ক্রিপ্ট (114 বাইট):

অন্য প্রত্যেকেই পুনরাবৃত্তির কাজ করছিল, তাই আমি পুনরাবৃত্তি সমাধান চেষ্টা করতে চেয়েছিলাম। যদিও আমার অনেকগুলি বিশেষ মামলা রয়েছে।

আমি একটি মাস্টার তালিকা ধরে রেখেছি এবং তারপরে লুপ করব এবং নতুন সংখ্যাগুলি সহ নতুন তালিকাগুলি সংযোজন করব।

function q(n){a=[];if(n==1)a=[0];else if(n!=0){a=[0,b=[]];for(i=1;i<n;){c=[];b.push(c);b.push(i++);b=c}}return a}



0

05 এ বি 1 , 11 বাইট

_i¯ëFNI<α)R

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

11-বাইট বিকল্প:

_i¯ëݨRvy)R

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

05AB1E এর কোনও লুপ নেই যা নীচের দিকে চলে যায়, সুতরাং (input, 0]আমার হয় সীমার মধ্যে লুপ করতে হয়:

  • প্রথমে এই ব্যাপ্তি তৈরি করুন ( ݨR; পরিসর তৈরি [0, input]করুন, শেষ আইটেমটি সরিয়ে দিন, বিপরীত করুন) এবং তারপরে লুপ করুন ( vy);
  • বা [0, input)পরিবর্তে ( F) পরিসীমাটিতে লুপ করুন এবং লুপ-ইনডেক্স এবং ইনপুট -1 ( NI<α) এর মধ্যে সম্পূর্ণ পার্থক্য গ্রহণ করুন ।
_i          # If the (implicit) input is 0:
  ¯         #  Push the global array (empty by default)
 ë          # Else:
  F         #  Loop `N` in the range [0, (implicit) input):
   N        #   Push index `N`
    I<      #   Push input-1
      α     #   Take the absolute difference between the two
       )    #   Wrap everything on the stack into a list
        R   #   Reverse the list
            # (output the result implicitly after the if/loop)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.