প্রথম, শেষ এবং এর মধ্যে সমস্ত কিছু


33

দুটি পূর্ণসংখ্যা দেওয়া, দুটি পূর্ণসংখ্যা আউটপুট এবং তারপরে (উভয় বাদে) ব্যাপ্তি।

ব্যাপ্তির ক্রম অবশ্যই ইনপুট এর সমান হবে।

উদাহরণ:

 Input        Output
 0,  5   ->   [0, 5, 1, 2, 3, 4]
-3,  8   ->   [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
 4,  4   ->   [4, 4]
 4,  5   ->   [4, 5]
 8,  2   ->   [8, 2, 7, 6, 5, 4, 3]
-2, -7   ->   [-2, -7, -3, -4, -5, -6]

আমার ধারণা আমরা প্রি অর্ডার দিয়ে অর্ডার নিতে পারি না?
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন, না, আউটপুট অর্ডার ইনপুট অর্ডারের উপর নির্ভর করে
টিফিল্ড

@ স্টিভি গ্রিফিন, আউটপুট অর্ডারটি ইনপুট হিসাবে একই হতে হবে
টিফিল্ড

কি এই আউটপুট ফরম্যাট গ্রহণযোগ্য? নিউলাইনটি নোট করুন
লুইস মেন্ডো

2
@ কেভিন ক্রুজসেন কোনও যুক্তিসঙ্গত I / O গ্রহণযোগ্য।
টিফিল্ড

উত্তর:


14

আর , 39 33 30 বাইট

c(a<-scan(),setdiff(a:a[2],a))

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

ব্যবহারকারী 2390246 এবং জে.ডো-র সংরক্ষিত বাইটগুলির জন্য ধন্যবাদ।


দুটি পৃথক পূর্ণসংখ্যার পরিবর্তে ইনপুটটিকে ভেক্টর হিসাবে গ্রহণ করে আপনি কয়েকটি বাইট সংরক্ষণ করতে পারেন ।
ব্যবহারকারী 2390246

হ্যাঁ, এটি যুক্তিসঙ্গত, এবং এটি আসলে ফাংশন না করে পুরো প্রোগ্রাম হিসাবে আরও খাটো হয়ে যায়।
কিরিল এল

:অপারেটর উভয়
আরগের



10

পাইথন 2 (সিথন) , 36 35 বাইট

lambda x:x+range(*x,-cmp(*x)|1)[1:]

1 নাইট বন্ধ করে গল্ফ করার জন্য @ ননহ্নহোফকে ধন্যবাদ!

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


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

lambda x:x+range(*x+[-cmp(*x)|1])[1:]

সিপিথন বন্দরের জন্য @ জোনাস অউসেভিচিয়াসকে ধন্যবাদ!

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


2
এটি সবচেয়ে কম উত্তর এখনো উপার্জন 37 বাইট এ মান পাইথন 2 প্রয়োগ করা যেতে পারে: lambda x:x+range(*x+[-cmp(*x)|1])[1:]। দুর্দান্ত সমাধান
জোনাস অউসভিচিয়াস


7

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

lambda x,y:[x,y]+range(x,y,-(y<x)|1)[1:]

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


সত্যিই পছন্দ -(y<x)|1। খুব দুর্দান্ত তবে কেন এটি কাজ করে আমি কাজ করতে পারি না! কোন সুযোগ আপনি এটি ব্যাখ্যা করতে পারেন?
এলপেড্রো

2
@ এলপেড্রো মূলত, এর চেয়ে কঠোরভাবে কম y<xকিনা yতা যাচাই করে xএবং অন্যথায় True, যদি তা ফিরে আসে False। এর পর, ইউনারী -এটা প্রয়োগ করা হয়, যা ধর্মান্তরিত Trueকরার -1এবং Falseকরতে 0। শেষ ধাপে bitwise বা এই নম্বরে আপনাকে হয় 1। এটি স্পষ্টতই 1( 0b1) প্রভাবিত করে না এবং ছেড়ে দেয় -1( -0b1) অকার্যকর (এর সাইন বিট -1সেট করা আছে, সুতরাং এটি যেমন রাখা হয়েছে)। যাইহোক, এটা ধর্মান্তরিত করে 0করতে 1, যাতে rangeএকটি ব্যবহার করে আমাকে সম্পর্কে অভিযোগ নেই stepএর 0
এরিক আউটগল্ফার

এটি মারাত্মকভাবে দুর্দান্ত এবং খুব চালাক। আমি যদি দুবার upvote করতে পারে আমি। ব্যাখ্যার জন্য অনেক ধন্যবাদ।
এলপেড্রো

6

পাইথন 3, 64 62 51 বাইট

lambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]

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

পাইথন 2, 58 45 বাইট

lambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)

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


2
খালি তালিকাটি মিথ্যা বলে, আপনি a<=b and উভয় উত্তর থেকে মুছে ফেলতে পারেন
টিফিল্ড

এছাড়াও আপনি ব্যবহার করতে পারে +পরিবর্তেor
TFeld

@ ফিল্ড আপনাকে ধন্যবাদ
জোনাস অ্যাসেভিচিয়াস

পাইথন 3 ডাউন 47 বাইট:lambda a,b:[a,b,*range(a+1,b),*range(a-1,b,-1)]
মাইপেটলিয়ন


6

জাভাস্ক্রিপ্ট (ES6), 51 বাইট

হিসাবে ইনপুট লাগে (a)(b)

a=>g=(b,c=b)=>(b+=b<a|-(b>a))-a?[...g(b,c),b]:[a,c]

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

মন্তব্য

a =>                // main function, taking a
  g = (             // g = recursive function
    b,              //     taking b
    c = b           // we save a backup of the original value of b into c
  ) =>              //
    (b +=           // add to b:
      b < a |       //   +1 if b is less than a
      -(b > a)      //   -1 if b is greater than a
    )               //   (or 0 if b = a)
    - a ?           // if the updated value of b is not equal to a:
      [             //   generate a new array:
        ...g(b, c), //     prepend all values generated by a recursive call
        b           //     append the current value of b
      ]             //
    :               // else:
      [a, c]        //   stop recursion and return the first 2 values: a and c

6

পাইথন 2 , 47 41 40 বাইট

lambda a,b:[a,b]+range(a,b,a<b or-1)[1:]

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

এখানে আমার, এখন পাইথনের অন্যান্য অনেক উত্তর পোস্ট করা হয়েছে

-6 বাইট, জিবি ধন্যবাদ


খালি পরিসীমাটি অবৈধ হয়ে যাওয়ার পরে সুবিধা গ্রহণ করা সামনের বা পিছনের তালিকাগুলি মোকাবেলার একটি দুর্দান্ত উপায়। আমি দেখতে পেলাম যে খুব দরকারী এবং এটি একটি দুর্দান্ত কৌশল যা জানা আছে।
আকোজি

2
একক ব্যাপ্তি ব্যবহার করে 41 বাইট: পরিসর (a, b, (a <b) * 2-1)
জিবি

a<b or-1তৃতীয় ব্যাপ্তির প্যারামিটারের জন্য ছোট। আমার কাছে সবচেয়ে সংক্ষিপ্ততমটি ছিলlambda x,y:[x,y]+range(x+(x<y or-1),y,x<y or-1)
mbomb007

5

জাভা 10, 109 108 104 102 93 62 বাইট

একটি স্পেস-সীমাবদ্ধ স্ট্রিং ব্যবহার:

b->a->{var r=a+" "+b;for(;a<b?++a<b:--a>b;)r+=" "+a;return r;}

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

একটি তালিকা ব্যবহার করে:

b->a->{var r=new java.util.Stack();for(r.add(a),r.add(b);a<b?++a<b:--a>b;)r.add(a);return r;}

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

( একই বাইট-কাউন্টের জন্য a<b?++a<b:--a>bহতে পারে ++a<b||(a-=2)>b: স্ট্রিংয়ের জন্য এটি অনলাইন চেষ্টা করুন বা তালিকার জন্য এটি অনলাইনে চেষ্টা করুন ))


পুরানো ( 109 108 104 102 101 বাইট) একটি অ্যারে ব্যবহার করে উত্তর:

a->b->{int s=a<b?1:-1,i=a!=b?(b-a)*s+1:2,r[]=new int[i];for(r[0]=a,r[1]=b;i>2;)r[--i]=b-=s;return r;}

-7 ধন্যবাদ বাইট @nwellnhof

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

ব্যাখ্যা:

a->b->{                // Method with 2 int parameters & int-array return-type
  int s=               //  Step integer, starting at:
        a<b?1          //   1 if the first input is smaller than the second
        :-1;           //   -1 otherwise
      i=               //  Array-index integer, starting at:
        a!=b?          //   If the inputs aren't equal:
         (b-a)*s+1     //    Set it to the absolute difference + 1
        :              //   Else:
         2,            //    Set it to 2
      r[]=new int[i];  //  Result-array of that size
  for(r[0]=a,          //  Fill the first value with the first input
      r[1]=b;          //  And the second value with the second input
      i>2;)            //  Loop `i` downwards in the range [`i`,2):
    r[--i]=            //   Decrease `i` by 1 first with `--i`
                       //   Set the `i`'th array-value to:
           b-=s;       //    If the step integer is 1: decrease `b` by 1
                       //    If the step integer is -1: increase `b` by 1
                       //    And set the array-value to this modified `b`
  return r;}           //  Return the result-array

পূর্ণসংখ্যার ব্যাপ্তি তৈরির জন্য জাভা মানক লাইব্রেরিতে কিছু নেই? অথবা এটি ব্যবহার করা খুব ভার্জোজ?
17urous

@ Ousurous এটি সত্যিই খুব ভার্জোজ: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;}(১৩০ বাইট)
কেভিন ক্রুইজসেন

এটি জাভা 8 বা জাভা 10? "ভার"
Because

1
@ নীট আহ, স্থির নীচের অ্যারের সাথে আমার প্রাথমিক সংস্করণটি ব্যবহার করা হয়নি var, এ কারণেই আমি সাধারণত এগুলিকে 8 এ রাখি এবং যেগুলি var10 হিসাবে ব্যবহার করে (এবং String.repeat11 টি হিসাবে ব্যবহার করে )। :) তালিকা এবং স্ট্রিং উত্তর যুক্ত করার পরে এটি আপডেট করতে ভুলে গেছেন, এখনই সংশোধন করা উচিত। ধন্যবাদ।
কেভিন ক্রুইজসেন

5

এপিএল (ডায়ালগ প্রসারিত) , 5 বাইট

বেনামে ইনফিক্স ফাংশন।

,,…~,

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

, প্রথম এবং শেষ (লিট। আর্গুমেন্টের সংক্ষিপ্তকরণ)

, এবং (আলোকিত

 পরিসর

~ ছাড়া

, প্রথম এবং শেষ (লিট। আর্গুমেন্টের সংক্ষিপ্তকরণ)


ভাল লাগছে, তাই আমি ধরে নিচ্ছি আপনি এখন থেকে আপনার সমস্ত গল্ফের জন্য এটি ব্যবহার করছেন?
জাকারি

@ Zachary সম্ভবত শুধুমাত্র কোড হলে উল্লেখযোগ্যভাবে খাটো বা সহজ।
অ্যাডম

4

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

a#b=a:b:[a+1..b-1]++[a-1,a-2..b+1]

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


এটা কাজ করে না. জিএইচসি b-1হিসাবে ব্যাখ্যা করে b $ (-1)b- 1পরিবর্তে ব্যবহার করুন।
স্কুলেমারাইন

@ মার্কনিউ: এটি কাজ করে। টিআইও লিঙ্কটি দেখুন।
নিমি

ওহ দুঃখিত! আমি চালু ছিল NegativeLiterals
স্কুলেমারাইন


4

জে , 26 বাইট

,,[|.@]^:(>{.)<.+1}.i.@|@-

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

ব্যাখ্যা:

একটি ডায়াডিক ক্রিয়া (বাম এবং ডান যুক্তি লাগে)

                         -    subtracts the arguments
                       |@     and finds the absolute value
                    i.@       and makes a list 0..absolute difference
                 1}.          drops the fist element
                +             adds to the entire list
              <.              the smaller of the arguments
   |.@]                       reverses the list
       ^:                     only if
  [                           the left argument
         (>{.)                is greater than the first item of the list
 ,                            appends the list to
,                             the right argument appended to the left one

1
,,[:}.@}:<.+i.@-@(+*)@-23 বাইটের জন্য এবং আপেক্ষিক আর্গুমেন্ট অর্ডার করার জন্য কোনও বিশেষ কেসিং নয় (বরং এটি সাইনামের ভিতরে লুকানো রয়েছে *)। আমার মনে হচ্ছে এটি ২০ বছরের নিচে নামতে পারে তবে আমি ক্লান্ত।
জোনা

@ জোনাঃ আপনাকে ধন্যবাদ! বিটিডব্লিউ ফ্রাউনফ্রোগের সমাধান আমার চেয়ে আরও ভাল, সুতরাং আমি আর এটি গল্ফ করব না।
গ্যালেন ইভানভ

4

অক্টাভা , 45 বাইট

@(a,b)[a b linspace(a,b,(t=abs(a-b))+1)(2:t)]

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


যদি প্রথমটি দ্বিতীয়টির চেয়ে বড় হয় তবে রেঞ্জটি অবতরণ করতে হবে
টিফিল্ড

ওহ মানুষ, আমি পড়তে পারি না
লুইস মেন্ডো

আমি ভাষাটি পরিবর্তন করে শেষ করেছি
লুইস মেন্ডো

4

জে , 13 বাইট

,,<.+i.@-~-.=

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

     i.@-~       range [0 .. |difference|-1], reverse if the difference is positive
          -.=    remove the zero (either "=" is 0 or there’s nothing to remove)
  <.+            to each element add the smaller of the args
,,               prepend args

চমৎকার সমাধান! আমি সম্পূর্ণরূপে i.নেতিবাচক যুক্তি দিয়ে ভুলে গেছি ।
গ্যালেন ইভানভ

1
এই সুন্দর!
জোনা

3

ব্যাচ, 107 বাইট

@echo %1
@echo %2
@for %%s in (1 -1)do @for /l %%i in (%1,%%s,%2)do @if %1 neq %%i if %%i neq %2 echo %%i

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। ব্যাখ্যা:

@echo %1
@echo %2

দুটি পূর্ণসংখ্যা আউটপুট।

@for %%s in (1 -1)do

আরোহী এবং অবতরণ রেঞ্জ উভয়ই চেষ্টা করে দেখুন।

@for /l %%i in (%1,%%s,%2)do

অন্তর্ভুক্ত ব্যাপ্তির উপর লুপ।

@if %1 neq %%i if %%i neq %2

দুটি পূর্ণসংখ্যা বাদ দিন।

echo %%i

বর্তমান মান আউটপুট।


3

পাইথ , 5 বাইট

+QtrF

ইনপুট একটি দ্বি-উপাদান তালিকা [input 1, input 2],। এটি এখানে অনলাইনে চেষ্টা করুন , বা এখানে সমস্ত পরীক্ষার কেস একবারে যাচাই করুন

+QtrFQ   Implicit: Q=eval(input())
         Trailing Q inferred
   rFQ   Generate range [input 1 - input 2)
  t      Discard first element
+Q       Prepend Q

2-উপাদান তালিকার Fপরিবর্তে ব্যবহার করা .*একটি উজ্জ্বল কৌশল যা আমি একেবারে এখান থেকে ব্যবহার করব।
hakr14



3

রুবি , 33 40 বাইট

->a,b{[a,b]+[*a..b,*a.downto(b)][1..-2]}

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

অস্থায়ী সংশোধন, আরও ভাল ধারণা সন্ধান করার চেষ্টা করা


3
এর জন্য [4,4]কেবল একটিই দেয়[4]
কিরিল এল

আপনি ঠিক বলেছেন, আমি এটা ঠিক করেছি।
জিবি

3

পাইথন 2 , 52 47 41 বাইট

lambda i,j:[i,j]+range(i,j,(i<j)*2-1)[1:]

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

-জোকিংকে ধন্যবাদ দিয়ে -5

-6 পরিসীমা থেকে প্রথম উপাদানটি টুকরো টুকরো করে (ধারণাটি চুরি করা হয়েছে এবং @ টিফিল্ডের কাছে creditণের সাথে)

অ-ল্যাম্বদা সংস্করণ ...

পাইথন 2 , 51 49 47 বাইট

i,j=input();print[i,j]+range(i,j,(i<j)*2-1)[1:]

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

-জোকিংকে ধন্যবাদ দিয়ে -2


3

এপিএল (ডায়ালগ ক্লাসিক) , 29 বাইট

{⍺,⍵,(⌽⍣(⍺>⍵))(⍺⌊⍵)+¯1↓⍳|⍺-⍵}

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

আমার Jসমাধানের একটি বন্দর


বাহ, আমি অবাক হলাম এটি একটি আপাতদৃষ্টিতে সহজ কাজটির জন্য এত দীর্ঘ।
কুইনটেক

@ কুইন্টেক সম্ভবত এটি গল্ফ করা যেতে পারে, বা অন্য কোনও অ্যালগরিদমের ফলে খুব সংক্ষিপ্ত সমাধান হবে।
গ্যালেন ইভানভ

3

পিএইচপি (১০২ বাইট)

function t($a,$b){count($r=range($a,$b))>1?array_splice($r,1,0,array_pop($r)):$r=[$a,$b];print_r($r);}

স্যান্ডবক্স

দুর্ভাগ্যক্রমে (গল্ফের জন্য) পিএইচপি-র পরিবর্তে ভার্জোজ ফাংশন নাম রয়েছে, যা দৈর্ঘ্যে অনেক বেশি অবদান রাখে। তবে মৌলিক ধারণাটি একটি পরিসীমা তৈরি করা, তারপরে শেষ উপাদানটি পপ অফ করে অফসেটে এটিকে আবার সেলাই করুন 1 4,4উদাহরণস্বরূপ আমাকে যুক্ত করতে হয়েছিল count($r=range($a,$b))>1?...:$r=[$a,$b];যা কিছুটা যুক্ত করেছে, এবং দুর্ভাগ্যক্রমেarray_splice() এমন রেফারেন্স যা আমাকে আরও কয়েকটির জন্য আঘাত করেছিল is বাইটস ($r= and a ; )। সব কারণ "প্রান্তের কেস", হ্যাঁ।

ভাল যাই হোক উপভোগ করুন!


আমি মনে করি না যে এটি কোড গল্ফের জন্য একটি সঠিক পদ্ধতির। এটি দেখুন function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o[]=$i;print_r($o);}
th3pirat3

বা এর মতো কিছুfunction t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
th3pirat3

1
এটি একটি ফাংশন হতে হবে এবং এটি একটি অ্যারের আউটপুট করতে হবে। যদি আপনার আরও ভাল উত্তর থাকে তবে এটি পোস্ট করতে স্বাগতম।
আর্টিস্টিকফিনিক্স

আমি এটি সম্পাদনা করেছি, এটা কি এখন বৈধ জমা? আমি কি নতুন উত্তর হিসাবে রাখব নাকি?
th3pirat3

এটি সম্পূর্ণ আপনার উপর নির্ভর করে, আমি কেবল এটি একটি লুপ ছাড়াই করতে চেয়েছিলাম ... lol
আর্টিস্টিকফিনিক্স

3

ক্লোজার , 61 বাইট

(fn[[a b]](def s(if(> a b)-1 1))(list* a b(range(+ a s)b s)))

একটি অনামী ফাংশন যা ইনপুট হিসাবে 2-ভেক্টর নেয় এবং একটি তালিকা ফেরত দেয়।

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

ব্যাখ্যা

(fn [[a b]] ; An anonymous function that accepts a 2-vector as input, and destructures it to a and b
  (def s (if (> a b) -1 1)) ; If a > b assigns -1 to s and assigns 1 to s otherwise. This determines the order of the elements of the output list.
  (list* a b ; Creates a list with a and b as the first two elements. The remaining elements will be appended from the following range:
    (range (+ a s) b s))) ; A range starting at a+s and ending at b with step s


3

টিআই-বেসিক, 35 34 বাইট

মিশা লাভরভের কাছ থেকে -1 বাইট

Prompt A,B
Disp A,B
cos(π(A>B
For(I,A+Ans,B-Ans,Ans
Disp I
End

2
আর প্রতিস্থাপন আরও একটি বাইট 1-2(A>Bসঙ্গে cos(π(A>B
মিশা লাভরভ

@MishaLavrov seq(ইনপুট জন্য কাজ যেখানে করা হবে না Aএবং Bএকই, দুর্ভাগ্যবশত :(
kamoroso94

সত্য - এটিও, আমি একটি যুক্তি রেখে দিয়েছি seq(, তাই আমি এটির চেয়েও ছোট এটি এখন আর বিশ্বাস করি না। তবুও, cos(কৌশলটি সাহায্য করা উচিত।
মিশা লাভরভ

2

কাঠকয়লা , 15 বাইট

IE²NI…⊕θηI⮌…⊕ηθ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

IE²N

ইনপুটগুলি পৃথক লাইনে মুদ্রণ করুন।

I…⊕θη

আরোহী ব্যাপ্তি প্রিন্ট করুন, যদি থাকে তবে।

I⮌…⊕ηθ

বিপরীত আরোহী বিপরীত সীমাটি প্রিন্ট করুন, যদি থাকে তবে।


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