465 ব্যবস্থা


24

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

উদাহরণ:

আমাদের শুরু হিসাবে 1 থেকে 5 নিতে দেয়

সংখ্যাগুলি [1, 2, 3, 4, 5]।

আমরা প্রথম গ্রহণ করি, তাই [1]। বাকী সংখ্যাগুলি [2, 3, 4, 5]। আমরা শেষটি নিই, নতুন অ্যারেটি [1, 5]। অবশিষ্ট সংখ্যাগুলি [2, 3, 4]। আমরা প্রথমটি গ্রহণ করি, নতুন অ্যারেটি হল [1, 5, 2]। বাকি সংখ্যাগুলি [3, 4]। আমরা শেষটি নিই, নতুন অ্যারেটি [1, 5, 2, 4]। বাকি সংখ্যাগুলি [3]। আমরা প্রথম, নতুন অ্যারেটি [1, 5, 2, 4, 3] নিই। কোনও সংখ্যা বাকি নেই, আমরা শেষ করেছি। আউটপুট [1, 5, 2, 4, 3]

নিয়মাবলী:

  • এটি কোড গল্ফ, এটিকে কয়েকটি বাইটে, যে কোনও ভাষায় লিখুন।
  • কোনও মানক ফাঁক নেই।
  • একটি অনলাইন দোভাষীর লিঙ্ক, দয়া করে? (যেমন https://tio.run/ )
  • দুটি ইনপুট, উভয় পূর্ণসংখ্যা। সীমার নিম্ন প্রান্ত এবং ব্যাপ্তির উচ্চ প্রান্ত।
  • আউটপুটটির ডেটা টাইপ কী তা আমি আপত্তি করি না তবে এটি অবশ্যই সঠিক ক্রমে নম্বরগুলি প্রদর্শন করবে।

উদাহরণ

নিম্ন: 4 উচ্চ: 6 ফলাফল: 4 6 5


নিম্ন: 1 উচ্চ: 5 ফলাফল: 1 5 2 4 3


নিম্ন: -1 উচ্চ: 1 ফলাফল: -1 1 0


কম: -1 উচ্চ: 2 ফলাফল: -1 2 0 1


নিম্ন: -50 উচ্চ: 50 ফলাফল: -50 50 -49 49 -48 48 -47 47 -46 46 -45 45 -44 44 -43 43 -42 42 -41 41 -40 40 -39 39 -38 38 -37 37 -36 36 -35 35 -34 34 -33 33 -32 32 -31 31 -30 30 -29 29 -28 28 -27 27 -26 26 -25 25 -24 24 -23 23 -22 22 -21 21 - 20 20 -19 19 -18 18 -17 17 -16 16 -15 15 -14 14 -13 13 -12 12 -11 11 -10 10 -9 9 -8 8 -7 7 -6 6 -5 5 -4 4 -3 3 -2 2 -1 1 0


শুভ গল্ফিং!


2
প্রায় সদৃশ (এই পার্থক্যটি হ'ল মার্জ হওয়ার আগে এটির দ্বিতীয়ার্ধটি বিপরীত হওয়া প্রয়োজন)।
পিটার টেলর

ইনপুটটি কি সর্বদা নিম্ন প্রান্তের, উচ্চ প্রান্তে থাকবে?
Sumner18

1
@ Sumner18 হ্যাঁ এখানকার সম্প্রদায়টি ইনপুট বৈধতার বিপরীতে মৃত-সেট, এবং আমি কোনও বিপরীত-অর্ডার ইনপুট চাইনি, তাই আমরা ধরে নিতে পারি যে এটি সর্বদা কম - উচ্চতর থাকবে।
এজেফারাডে

1
@ Sumner18 এই চ্যালেঞ্জগুলি সাধারণত কীভাবে কাজ করে তা হ'ল কীভাবে অবৈধ ইনপুটগুলি পরিচালনা করা হয় সে বিষয়ে আমাদের খেয়াল নেই। আপনার কোডটি কেবলমাত্র বৈধ ইনপুটগুলির সাথে কীভাবে
व्यवहार

1
@ এজেফারাডে: আপনার মূল পোস্টে একটি নোট যুক্ত করা উচিত যা ইঙ্গিত করে যে এক্স সবসময়ই ওয়াইয়ের চেয়ে কম থাকবে (যেমন এক্স! = ওয়াই), আমি এই মন্তব্যটি মিস করেছি;)
ডিগএমএল সব

উত্তর:


15

আর , 38 37 36 বাইট

function(a,b)rbind(a:b,b:a)[a:b-a+1]

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

  • -1 বাইট @ ইউজার 2390246 ধন্যবাদ
  • -1 বাইট @ কিরিল এলকে ধন্যবাদ

আর স্টোর কলাম-ভিত্তিতে ম্যাট্রিক করে fact


ব্যবহার rbindকরা আমার পদ্ধতির চেয়ে অনেক ভাল তবে আপনি [seq(a:b)]পরিবর্তে ব্যবহার করে 1 বাইট সংরক্ষণ করতে পারেন unique
ব্যবহারকারী 2390246

আপনি ঠিক বলেছেন, আমি যে মন্তব্যটি উল্লেখ করেছি সেখানে একটি <বি (কখনই সমান) নয়, তাই আমরা ব্যবহার করতে পারিseq(a:b)
digEmAll সমস্ত

@ ডিগেমএল সব আমার সমাধান মূলত ধাঁধাটির একটি আক্ষরিক ব্যাখ্যা ছিল, আমি কখনও এরকম কিছু করার চিন্তাও করতাম না। চিত্তাকর্ষক, একটি upvote আছে!
Sumner18



8

আর , 65 64 61 60 বাইট

-1 বাইট ধন্যবাদ রবার্ট এসকে

-4 আরও digEmAll ধন্যবাদ

x=scan();z=x:x[2];while(sum(z|1)){cat(z[1],"");z=rev(z[-1])}

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


আপনি 1 বাইট সংরক্ষণ করার length(z)সাথে প্রতিস্থাপন করতে পারেন sum(z|1):)
রবার্ট এস

আমি বুঝতে পারি না যে এটি কীভাবে কাজ করে তবে আমি অনুমান করি যে এটি কী করে। যোগফল (z | 1) দেখে মনে হচ্ছে এটি সর্বদা সর্বনিম্ন 1 টিতে মূল্যায়ন করবে যার ফলে লুপটি অন্তহীনভাবে লুপ হয়ে যাবে। তবে আপাতদৃষ্টিতে তা নয়
Sumner18

4
z একটি ভেক্টর। সেই ভেক্টরের প্রতিটি উপাদান 1 |দিয়ে সম্পাদিত হয় যা সর্বদা 1 TRUEএর সমান হয় you যদি ভেক্টরটি খালি থাকে |তবে আউটপুট ভেক্টরটি আপনাকে কিছুই দেয় না logical(0)। আপনি যখন এই পরিমাণটি
নেন



5

পাওয়ারশেল , 59 48 বাইট

param($a,$b)(($z=0..($b-$a))|%{$a+$_;$b-$_})[$z]

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

(দীর্ঘ মনে হচ্ছে ...)

ইনপুট নেয় $aএবং $b, এই সীমাটি তৈরি করে 0 .. ($b-$a), এতে স্টোর করে $z, তারপরে সেই ব্যাপ্তিটি লুপ করে। আমরা পর্যাপ্ত পরিমাণে পুনরাবৃত্তি পেতে পারি তা নিশ্চিত করতে এই ব্যাপ্তির মধ্যবর্তী লুপিং কেবলমাত্র কাউন্টার হিসাবে ব্যবহৃত হয়। প্রতিটি পুনরাবৃত্তির, আমরা করা $aএবং $bযোগ / বিয়োগ সঙ্গে পাইপলাইন উপর। যে আমাদের মত কিছু দেয় 1,5,2,4,3,3,4,2,5,1তাই আমরা থেকে যে মধ্যে ছে প্রয়োজন 0পর্যন্ত$b-$a জন্য মূল অ্যারের (অর্থাৎ গণনা) যাতে আমরা কেবল উপযুক্ত উপাদানগুলি রেখে চলেছি। এটি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।

-11 বাইট মজির ধন্যবাদ।



@ মমজি আহ, আমি সেই $b-$aকৌশলটি পছন্দ করি - এটি চালাক!
অ্যাডমবর্কবার্ক

5

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

ŸDvć,R

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

ব্যাখ্যা

Ÿ        # push range [min ... max]
 D       # duplicate
  v      # for each element in the copy
   ć,    # extract and print the head of the original list
     R   # and then reverse it

Le2ä`R.ι ইন্টারলিভ ব্যবহার না করে পুনরাবৃত্তি করা, তবে এটি এখনও আরও ভাল।
ম্যাজিক অক্টোপাস উরন

1
@ ম্যাজিক অ্যাক্টপাস ইউরন: আমি প্রথমে একটি পুনরাবৃত্ত সমাধান সমাধান করে চেষ্টা করেছি, তবে এটি সম্পর্কে আরও খারাপ ছিল যেহেতু আমি জানতাম না ;)
এমিগানা

আমার মনে যেমন ছিল তেমনই আমার থেকে +1 স্পষ্ট। আমি আপনার বিকল্প 7-বাইটারের মাধ্যমেও @ ম্যাজিকঅ্যাক্টোপাস ইউআরএন পছন্দ করি। :)
কেভিন ক্রুইজসেন

1
@ ক্রিশ্চান উইলিয়ামস: আমার পক্ষে কাজ করছে বলে মনে হচ্ছে ।
এমিগানা

1
@ কেভিন ক্রুইজসেন: যাইহোক যেহেতু আরও স্বজ্ঞাত অনুভূত হওয়ায় আমি তার পরিবর্তে একটি জুটিতে
চলেছি



4

আর , 51 বাইট

function(x,y,z=x:y)matrix(c(z,rev(z)),2,,T)[seq(z)]

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

ব্যাখ্যা: x:yদৈর্ঘ্যের অনুক্রমের জন্য N, উপরের সারিতে x: y এবং নীচের সারিতে y: x সমন্বিত একটি দ্বি বাই এন ম্যাট্রিক্স তৈরি করুন matrix(c(z,rev(z)),2,,T)। যদি আমরা Nম্যাট্রিক্সের প্রথম উপাদানগুলি নির্বাচন করি তবে [seq(z)]সেগুলি প্রয়োজনীয় আউটপুট দিয়ে কলাম দ্বারা চয়ন করা হবে।

DigEmAll দ্বারা আউটগল্ফড


1
আমি আপনার 30 সেকেন্ড আগে সবেমাত্র একটি খুব অনুরূপ পন্থা পোস্ট করেছি: ডি
ডিগএমএল সব

@ ডিগেম সমস্ত হ্যাঁ, তবে আপনার চেয়ে অনেক ভাল!
ব্যবহারকারী 2390246

4

cQuents , 19 বাইট

#|B-A+1&A+k-1,B-k+1

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

নোট করুন যে এটি এখন টিআইও-তে কাজ করে না কারণ টিআইওর দোভাষী তারপরে নেই।

ব্যাখ্যা

#|B-A+1&A+k-1,B-k+1
                      A is the first input, B is the second input
#|B-A+1               n = B - A + 1
       &              Print the first n terms of the sequence
                      k starts at 1 and increments whenever we return to the first term
        A+k-1,         Terms alternate between A + k - 1 and
              B-k+1     B - k + 1
                       increment k


4

4

জেভিএম বাইটকোড (ওপেনজেডিকে asmtools জেএসএম), 449 বাইট

enum b{const #1=Method java/io/PrintStream.print:(I)V;static Method a:(II)V stack 2 locals 4{getstatic java/lang/System.out:"Ljava/io/PrintStream;";astore 3;ldc 0;istore 2;l:iload 2;ldc 1;if_icmpeq t;aload 3;iload 0;invokevirtual #1;iinc 0,1;iinc 2,1;goto c;t:aload 3;iload 1;invokevirtual #1;iinc 1,-1;iinc 2,-1;c:aload 3;ldc 32;i2c;invokevirtual java/io/PrintStream.print:(C)V;iload 0;iload 1;if_icmpne l;aload 3;iload 0;invokevirtual #1;return;}}

অবহেলিত (এবং কিছুটা পরিষ্কার)

 enum b {    
    public static Method "a":(II)V stack 5 locals 4 {
        getstatic "java/lang/System"."out":"Ljava/io/PrintStream;";
        astore 3;
        ldc 0;
        istore 2;
    loop:
        iload 2;
        ldc 1;
        if_icmpeq true;
    false:
        aload 3;
        iload 0;
        invokevirtual "java/io/PrintStream"."print":"(I)V";
        iinc 0,1;
        iinc 2,1;
        goto cond;
    true:
        aload 3;
        iload 1;
        invokevirtual "java/io/PrintStream"."print":"(I)V";
        iinc 1,-1;
        iinc 2,-1;
        goto cond;
    cond:
        iload 0;
        iload 1;
        if_icmpne loop;
        aload 3;
        iload 0;
        invokevirtual "java/io/PrintStream"."print":"(I)V";
        return;
    }
}

স্বতন্ত্র ফাংশন, হিসাবে জাভা থেকে কল করা প্রয়োজন b.a(num1,num2)

ব্যাখ্যা

এই কোডটি ভ্যারিয়েবল হিসাবে পদ্ধতি পরামিতিগুলি ব্যবহার করে, পাশাপাশি কোন সংখ্যাটি আউটপুট দিতে হবে তা সিদ্ধান্ত নেওয়ার ক্ষেত্রে স্থানীয় # 3 তে বুলিয়ান ব্যবহার করে। প্রতিটি লুপ পুনরাবৃত্তি হয় হয় বাম বা ডান আউটপুট এবং সেই সংখ্যাটি বামের জন্য বাড়ানো হয় বা ডানটির জন্য হ্রাস পায়। উভয় সংখ্যা সমান না হওয়া পর্যন্ত লুপ অবিরত থাকে, তারপরে সেই সংখ্যাটি আউটপুট।

... আমার একটি স্বতন্ত্র অনুভূতি আছে যে আমি বাইট গণনায় প্রচুর পরিমাণে ছাড়িয়ে এসেছি


4

ওল্ফ্রাম ভাষা (গণিত) , 56 54 বাইট 56

এই প্রথম আমার গল্ফ!

f[a_,b_]:=(c=a~Range~b;Drop[c~Riffle~Reverse@c,a-b-1])

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

ইনফিক্স স্বরলিপি ব্যবহার করে 2 বাইট সংরক্ষণ করা হয়েছে।

ব্যাখ্যা:

f[a_,b_]:=                                   \function of two variables
c=a~Range~b;                                 \list of integers from a to b 
                           Reverse@c         \same list in reverse
                  c~Riffle~Reverse@c         \interleave the two lists
             Drop[c~Riffle~Reverse@c,a-b-1]  \drop last |a-b-1| elements (note a-b-1 < 0)

বিকল্পভাবে, আমরা ব্যবহার করতে পারে Take[...,b-a+1] একই ফলাফলের জন্য ।

পরীক্ষা:

f[4, 6]
f[1, 5]
f[-1, 1]
f[-1, 2]

Ouput:

{4, 6, 5}
{1, 5, 2, 4, 3}
{-1, 1, 0}
{-1, 2, 0, 1}

"এটি অনলাইনে চেষ্টা করুন" লিঙ্কটি 403 ফেরত দেয় "" দুঃখিত, আপনার এই আইটেমটি অ্যাক্সেস করার অনুমতি নেই ""
রোহিত নামজোশি

@ রোহিতনমোশি আমি লিঙ্কটি আপডেট করেছি
কাই

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

@ জোকিং অনেক প্রশংসা করেছেন, আমি এর আগে কখনও ব্যবহার করিনি!
কাই





3

ফোর্থ (গফার্থ) , 52 বাইট

: f 2dup - 1+ 0 do dup . i 2 mod 2* 1- - swap loop ;

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

ব্যাখ্যা

0 থেকে লুপ (শেষ - শুরু)। স্ট্যাকের শীর্ষে এন্ড স্টার্ট করুন।

প্রতিটি আইট্রেশন:

  • বর্তমান নম্বর আউটপুট
  • বর্তমান নম্বর থেকে 1 যোগ করুন (বা বিয়োগ) করুন
  • অন্যান্য নম্বর সহ বর্তমান নম্বরটি স্যুইচ করুন

কোড ব্যাখ্যা

: f           \ start new word definition
  2dup -      \ get the size of the range (total number of integers)
  1+ 0        \ add 1 to the size because forth loops are [Inclusive, Exclusive) 
  do          \ start counted loop from 0 to size+1
    dup .     \ output the current top of the stack
    i 2 mod   \ get the index of the loop modulus 2
    2* 1-     \ convert from 0,1 to -1,1
    -         \ subtract result from top of stack (adds 1 to lower bound and subtracts 1 from upper)
    swap      \ swap the top two stack numbers 
  loop        \ end the counted loop
;             \ end the word definition


3

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

l%h=l:take(h-l)(h:(l+1)%(h-1))

ব্যবহার: 3%7`[3,7,4,6,5] দেয়

ইনপুটগুলির l, hজন্য ফাংশনটি ইনপুটগুলির সাথে পুনরাবৃত্তভাবে কল করে এবং ভিক্ষাবৃত্তিতে l+1, h-1যোগ l,hকরে। কোনও স্থগিত শর্তের পরিবর্তে কোডটি take(h-l)সঠিক দৈর্ঘ্যের ক্রমটি সংক্ষিপ্ত করতে ব্যবহার করে (যা অন্যথায় সংখ্যা বাড়ার এবং হ্রাস করার একটি সীমাহীন ক্রম হবে)।


3

ব্র্যাচল্যাগ , 15 বাইট

⟦₂{∅|b↔↰T&hg,T}

ইনপুট একটি 2-উপাদান তালিকা [লো, হাই]। নোট করুন যে আন্ডারস্কোরটি নেতিবাচক সংখ্যার জন্য ব্যবহৃত হয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

⟦₂               2-argument inclusive range: [1,5] -> [1,2,3,4,5]
  {           }  Call this recursive predicate to calculate the output:
   ∅               Base case: the input is empty list; nothing to do
    |              Otherwise (recursive case):      [1,2,3,4,5]
     b             Behead the input list            [2,3,4,5]
      ↔            Reverse                          [5,4,3,2]
       ↰           Call the predicate recursively   [5,2,4,3]
        T          Label the result T
         &         Also, with the input list,
          h        Take the head                    1
           g       Wrap it in a list                [1]
            ,T     Append T from earlier            [1,5,2,4,3]

3

ম্যাথগল্ফ , 6 বাইট

↨_x^─▀

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

সাথে ব্যাখ্যা (1, 5)

↨        inclusive range from a to b    [1, 2, 3, 4, 5]
 _       duplicate TOS                  [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]
  x      reverse int/array/string       [1, 2, 3, 4, 5], [5, 4, 3, 2, 1]
   ^     zip top two elements on stack  [[1, 5], [2, 4], [3, 3], [4, 2], [5, 1]]
    ─    flatten array                  [1, 5, 2, 4, 3, 3, 4, 2, 5, 1]
     ▀   unique elements of string/list [1, 5, 2, 4, 3]

এই কাজটি করার কারণটি আউটপুটে সমস্ত উপাদান পৃথক হওয়া উচিত এই কারণে হয়, সুতরাং অনন্য উপাদানসমূহ অপারেটর অ্যারের দ্বিতীয়ার্ধে ফিল্টার করে সঠিক আউটপুট তৈরি করবে।





2

রুবি , 37 36 33 বাইট

f=->a,b{a>b ?[]:[a,b]|f[a+1,b-1]}

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

জি বি দ্বারা সংরক্ষিত 3 বাইট সহ পুনরাবৃত্ত সংস্করণ

রুবি , 38 বাইট

->a,b{d=*c=a..b;c.map{d.reverse!.pop}}

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

পুনরাবৃত্তিযোগ্য সংস্করণ।


2

কিউবিক্স, 16 বাইট

;w(.II>sO-?@;)^/

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

Cubified

    ; w
    ( .
I I > s O - ? @
; ) ^ / . . . .
    . .
    . .

ব্যাখ্যা

মূলত, এটি দুটি সীমা একসাথে এক ধাপে একসাথে একত্রিত হয় যতক্ষণ না তারা মিলিত হয়। লুপের মাধ্যমে প্রতিবার, আমরা sWAP সীমা, Output, সঙ্গে পার্থক্য, এবং বৃদ্ধি নেওয়া )বা হ্রাস (চিহ্ন উপর ভিত্তি করে।


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