রেক্যামনের ক্রম তৈরি করুন


20

রেক্যামনের ক্রম ( A005132 ) একটি গাণিতিক ক্রম, এটি সংজ্ঞায়িত:

A(0) = 0
A(n) = A(n-1) - n if A(n-1) - n > 0 and is new, else
A(n) = A(n-1) + n

উপরের একটি সুন্দর ল্যাটেক্স সংস্করণ (আরও পঠনযোগ্য হতে পারে):

A(n)={0if n=0A(n1)nif A(n1)n is positive and not already in the sequenceA(n1)+notherwise

প্রথম কয়েকটি শর্ত 0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11

স্পষ্ট করা, এর is newঅর্থ সংখ্যাটি ইতিমধ্যে ক্রমে রয়েছে কিনা।

nফাংশন আর্গুমেন্ট বা STDIN এর মাধ্যমে একটি পূর্ণসংখ্যা দেওয়া , nপুনঃনির্ধারন ক্রমের প্রথম পদগুলি প্রদান করুন।


এটি একটি কোড-গল্ফ চ্যালেঞ্জ, তাই সংক্ষিপ্ততম কোড জয়ী।


'নতুন' এর অর্থ কী?
বিটা ক্ষয়

যদি কোনও সংখ্যা নতুন হয় তবে এর অর্থ এটি এখনও সিকোয়েন্সে নেই। ঠিক বুঝতে পেরেছি যে আমি সিকোয়েন্সটি ভুল লিখেছি, এটি সংশোধন করার জন্য আমাকে একটি মিনিট দিন।
জেমস উইলিয়ামস

ক্রমটি সংশোধন করেছেন।
জেমস উইলিয়ামস

1
ক্রমটির প্রথম মানগুলি যুক্ত করতে পারেন?
গর্বিত হাসেলেলার

প্রথম কয়েক নম্বর যুক্ত! (এবং এর OEIS পৃষ্ঠার একটি লিঙ্ক)
জেমস উইলিয়ামস

উত্তর:


9

সিজেম, 34 33 বাইট

0ali{_W=_I-__0<4$@#)|@I+@?+}fI1>`

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

উদাহরণ রান

$ cjam <(echo '0ali{_W=_I-__0<4$@#)|@I+@?+}fI1>`') <<< 33
[0 1 3 6 2 7 13 20 12 21 11 22 10 23 9 24 8 25 43 62 42 63 41 18 42 17 43 16 44 15 45 14 46]

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

0ali                               " Push S := [ 0 ] and read an integer N from STDIN.    ";
    {                      }fI     " For each I in [ 0 ... (N - 1) ]:                     ";
     _W=                           "   X := S[-1].                                        ";
        _I-                        "   Y := X - I                                         ";
            _0<                    "   A := (Y < 0)                                       ";
           _   4$@#)               "   B := (Y ∊ S)                                       ";
                     @I+           "   Z := X + I                                         ";
                    |   @?         "   C := (A || B) ? Z : Y                              ";
                          +        "   S += [C]                                           ";
                              1>`  " Push str(S[1:]).                                     ";

আপনি কি পরিবর্তন করেছেন?
সোহম চৌধুরী

আমার প্রথম পদ্ধতির ক্রমটিতে নেতিবাচক সংখ্যাগুলিকে চাপ দেওয়া হয়েছে, সুতরাং আমাকে স্পষ্টভাবে চেক করতে হয়নি A(i) - i > 0। যাইহোক, আমি এর ছোট মানগুলির জন্য পর্যাপ্ত সংখ্যক প্রিপেন্ড করিনি n। এখন, আমি ঠিক ঠিক যা করি অনুমানগুলি বলে।
ডেনিস

33 বনাম 45. এত কাছে এবং এখনও পর্যন্ত। :)
ইনগো বার্ক

বাহ, e#সিজাম ছাড়াই মন্তব্য করুন ... সুস্বাদু চেরি।
ক্রোমিয়াম

8

হাস্কেল, 74

l=0:0#1
a§v|a<0||a`elem`r v=v|1<2=0-v
a#b=a+(a-bb:l!!b#(b+1)
r=(`take`l)

ব্যবহারের উদাহরণ:

λ> r 20
[0,1,3,6,2,7,13,20,12,21,11,22,10,23,9,24,8,25,43,62]

6

রুবি, 71 70 বাইট

f=->n{a=[0];(n-1).times{|i|a+=[[b=a[-1]-i-1]-a!=[]&&b>0?b:b+2*i+2]};a}

সংজ্ঞাটির একটি খুব "শব্দের জন্য শব্দ" বাস্তবায়ন।


5

পাইথন 2, 78 75 73 69 বাইট

কুডোস টু এক্সনর এবং ফ্লর্নকোকে
এখন প্রাথমিক উত্তরের চেয়ে প্রায় 10 বাইট কম

m=p,=0,
exec"p+=1;k=m[-1]-p;m+=k+2*p*(k*(k>0)in m),;"*input()
print m

আপনি সংক্ষিপ্ত [k,k+2*p][bool]করতে পারেন k+2*p*(bool)
xnor

@ এক্সনোর ধন্যবাদ, 3 বাইট সংরক্ষণ করা হয়েছে।
মার্কুজ

এছাড়াও, k in m or k<0হতে পারে k*(k>=0)in mযেহেতু যদি k<0, পণ্য 0যা হয়, m
xnor

@ এক্সনর ব্রিলিয়ান্ট! আবারও ধন্যবাদ
মার্কুজ

আপনি লিখতে পারেন -1পরিবর্তে p-1। সম্পাদনা: আপনি mএকটি টিপল তৈরি করতে এবং লিখতে m=0,এবং করতে পারেন m+=k+2*p*(k*(k>0)in m),
flornquake

4

গল্ফস্ক্রিপ্ট (41 45 )

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

(,1,\{:~1$=~)-:^1<\.^?)!!@|^\{~)2*+}*+}/

ব্যাখ্যা

এটি আসল 45 বাইট সমাধানের জন্য, তবে এটি এখনও বেশ কিছুটা একই:

(,              # push array [0 .. n-1]
[0]\            # push sequence elements as [0] and reverse stack
{               # foreach element in [0 .. n-1] do:
  :m;           # store current element in m and discard
  .m=           # get the previous sequence element
  m)-:^         # subtract the current index from it and store in ^
  0>            # is that number greater than 0?
  \.^?)!        # is that number new to our sequence?
  @&            # logically and both checks
  {^}           # if true, push ^
  {^m)2*+}      # otherwise, add the index twice and push
  if
  +             # add new element to our sequence
}/
`               # make output pretty

সম্পাদনা # 1: ডেনিসকে 4 বাইট ছাঁটাই করার জন্য ধন্যবাদ


4

ডিসি , 46 বাইট

sn[z+z+d0r:a]sF0[pz-d1>Fd;a0<Fddd:azln!<M]dsMx

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

এই প্রোগ্রামটি অন্যথায় খালি স্ট্যাক থেকে ইনপুট নেয় এবং স্টাডআউটে আউটপুটগুলি (নিউলাইন সীমিত)।

আমি এটির জন্য সত্যিই গর্বিত - এটি এমন কোনও কিছুকে মারছে যা কোনও উত্সর্গীকৃত গল্ফিং ভাষা নয় এবং আমার প্রিয় তিনটি ডিসি গল্ফিং কৌশল দেখায়:

  • স্ট্যাক আকার সূচক পরিবর্তনশীল হিসাবে ব্যবহৃত
  • "যদি তবে অন্য বি সি হয়" শর্তহীন সিতে "এবং যদি" ​​তবে ডি "হয় যেখানে সি এবং ডি একত্রিত করে বি তৈরি করে
  • স্বতন্ত্রতা সীমাবদ্ধতা সমাধান করতে স্বল্প-ব্যবহৃত এলোমেলো অ্যাক্সেস অ্যারে বৈশিষ্ট্য

ব্যাখ্যা

sn             Stores the input in register n
[z+z+0r:a]sF   Defines the macro F, which: 
    z+z+         adds twice the stack size/index variable
    0r:a         resets the "uniqueness" flag to 0 in the array a
               In context, F is the "D" in my description above, 
               changing A(z-1)-z to A(z-1)+z
0              The main loop starts with the previous sequence member on top of 
               the stack and total stack depth equal to the next index. 
               Pushing a zero accomplishes both of these things.
[              Start of the main loop M
  p               Print the previous sequence member, with newline (no pop)
  z-             Calculate A(z-1)-z
  d1>F           If that's nonpositive, (F)ix it to be A(z-1)+z
  d;a            a is my array of flags to see if we've hit this value before
  0<F            If we have, (F)ix it! (nonzero = flag, since ;a is zero by
                 default, and also zero if we just (F)ixed and therefore 
                 don't care about uniqueness right now)
  ddd            Make one copy to keep and two to eat
  :a             Flag this entry as "used" in the uniqueness array a
  zln!<M         If our "index variable" is n or less, repeat!
]dsMx          End of main loop - store it and execute

এটি বুনো, আমার কোনও ধারণা নেই এমনকি ডিসিও বিদ্যমান ছিল
উজ্জ্বল করবেন না

3

জাভাস্ক্রিপ্ট - 81 80 79 70

আমাকে 9 বাইট বাঁচাতে সহায়তা করার জন্য এডক 65 তে কুডোস

f=n=>{for(a=[x=i=0];++i<n;)a[i]=x+=x>i&a.indexOf(x-i)<0?-i:i;return a}

-9: g = n => {এর জন্য (a = [x = i = 0]; ++ i <n;) এ [i] = x + = x> আমি এবং এআইআইডিএক্সএফ (xi) <0? -I: i ; একটি
return

@ edc65 গ্রাজি মিলে :)
উইলিয়াম বার্বোসা

3

জাভাস্ক্রিপ্ট, ES6, 74 69 টি অক্ষর

সর্বশেষতম ফায়ারফক্সের ওয়েব কনসোলে নীচের কোডটি চালান।

G=n=>(i=>{for(r=[t=0];++i<n;)r[i]=t+=i>t|~r.indexOf(t-i)?i:-i})(0)||r

আরও পরে এটি গল্ফ চেষ্টা করবে।

ব্যবহারের উদাহরণ:

G(11) -> 0,1,3,6,2,7,13,20,12,21,11

3

ম্যাটল্যাব, 83 78 বাইট

নীচে হিসাবে সংরক্ষণ করুন f.m(73 বাইট)

A=0;for i=1:n-1 b=A(i)-i;A(i+1)=b+2*i;if b>0&&~any(A==b) A(i+1)=b;end;end

কমান্ড উইন্ডো থেকে চালান (5 বাইট)

n=9;f

যদি উপরেরটি আইনী না হয় তবে তার জন্য 90 বাইট প্রয়োজন।

function A=f(n) 
A=0;for i=1:n-1 b=A(i)-i;A(i+1)=b+2*i;if b>0&&~any(A==b) A(i+1)=b;end;end

3

আর: 96 টি অক্ষর

Golfed:

A=function(s,n,m,i){if(m==n){return(s)}else{t=i-m;if(t%in%s||t<0){t=i+m};s=c(s,t);A(s,n,m+1,t)}}

Ungolfed:

A = function(s,n,m,i) {
    if(m==n){return(s)}
    else{
        t=i-m
        if(t%in%s||t<0){t=i+m}
        s=c(s,t)
        A(s,n,m+1,t)
    }
}

নমুনা রান:

> An(0,34,1)
[1]   0   1   3   6   2   7  13  20  12  21  11  22  10  23   9  24   8
[18]  25  43  62  42  63  41  18  42  17  43  16  44  15  45  14  46  79


3

পার্ল 6 , 62 57 বাইট

[(0, {$ - @ + @ * 2 * ($ !> @ || $ - @ ∈ @ ) প্রদত্ত @ [[* -1]} ... *) [^ $ ]}

{(0,{($!=@_[*-1])+@_-@_*2*($!>@_&&$!-@_∉@_)}...*)[^$_]}

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

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


আশ্চর্যজনক ... এটি আক্ষরিক দেখতে আমার বিড়ালটি আমার কীবোর্ড জুড়ে চলেছে।
উজ্জ্বল করুন

3

05 এ বি 1 , 19 বাইট

¾ˆG¯¤N-DŠD0›*åN·*+ˆ

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

ব্যাখ্যা

¾ˆ                    # Initialize the global list with 0
  G                   # for N in [1, input-1] do:
   ¯                  # push the global list
    ¤N-               # subtract N from the last item in the list
       D              # duplicate
        Š             # move the copy down 2 spots on the stack
         D            # duplicate again
          0›          # check if it is positive
            *         # multiply, turning negative results to zero
             å        # is the result already present in the list?
              N·*     # multiply by N*2
                 +    # add to the result
                  ˆ   # add this to the list

কিভাবে কাজ করে?
lirtosiast

@ লিরিটোসিয়াসট: যেহেতু আমি এই চ্যালেঞ্জটি করেছি তাই কিছুক্ষণ হয়ে গেছে, তাই এটি সংক্ষিপ্ত বিজ্ঞপ্তিতে আমি সবচেয়ে ভাল ব্যাখ্যা করতে পারি। আশা করি এটি যথেষ্ট।
এমিগিনা

3

কে (ওকে) , 53 বাইট

সমাধান:

{$[y>c:#x;o[x,(r;*|x+c)(r in x)|0>r:*|x-c;y];x]}[,0;]

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

ব্যাখ্যা:

পুনরাবৃত্তির সমাধান।

{$[y>c:#x;o[x,(r;*|x+c)(r in x)|0>r:*|x-c;y];x]}[,0;] / the solution
{                                              }[,0;] / lambda with first arg set as list containing 0
 $[      ;                                  ; ]       / if[condition;true;false]
       #x                                             / length of x
     c:                                               / save as c
   y>                                                 / y greater than? (ie have we produced enough results?)
                                             x        / return x if we are done
          o[                             ;y]          / recurse with new x and existing y
                                      x-c             / subtract c from x
                                    *|                / reverse first, aka last
                                  r:                  / save result as r
                                0>                    / 0 greater than?
                               |                      / or
                       (      )                       / do together
                        r in x                        / r in x?
              ( ;     )                               / use result to index into this 2-item list
                   x+c                                / add c to x
                 *|                                   / reverse first, aka last 
               r                                      / result
            x,                                        / append to x

2

জাভা, 144

int[]f(int n){int[]a=new int[n];a[0]=0;int i,j,k,m;for(i=0;i<n-1;){k=a[i++]-i;m=0;for(j=0;j<i;)if(k==a[j++])m=1;a[i]=m<1&k>0?k:k+2*i;}return a;}

2

লুয়া - 141 135 139 135

function s(n)a,b={1},{[0]=0}for i=1,n do k=b[i-1]-i c=k+i+i if(k>0)and(a[k]==nil)then b[i],a[k]=k,1 else b[i],a[c]=c,1 end end return b end

পাঠযোগ্য সংস্করণ:

function s(n)
a,b={1},{[0]=0}
for i=1,n do 
   k=b[i-1]-i 
   c=k+i+i
   if (k>0) and (a[k]==nil) then 
      b[i],a[k]=k,1 
   else 
      b[i],a[c]=c,1
   end 
end 
return b 
end

আমি ২ টি টেবিল ব্যবহার করি, প্রথমটিকে একটি বলা হয় এবং এটি নির্মিত হয় যাতে একটি [i] = 1 যদি আমি ইতিমধ্যে ক্রমটিতে উপস্থিত হয়ে থাকি তবে অন্যথায় শূন্য হয়, যখন দ্বিতীয় টেবিলটি আসলে ক্রম ধারণ করে


আপনার ক্রম 0 দিয়ে শুরু হওয়া উচিত, যদিও
উইলিয়াম বার্বোসা

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

2

পাইথন, 73

def f(x,t=0):
 if x:t=f(x-1);t+=2*x*(t*(t>0)in map(f,range(x)))
 return t

সম্পাদনা 1: অন্যান্য পাইথন উত্তরে @ xnor এর টিপসকে ধন্যবাদ! (আমি ঠিক বুঝতে পেরেছিলাম যে উভয়ই দেখতে খুব একই রকম।

সম্পাদনা 2: আবার ধন্যবাদ, xxor।


এটি একটি অসীম লুপ দেয়। আপনার কোনও ধরণের নিয়ন্ত্রণ প্রবাহ প্রয়োজন যাতে এটি f(x)তাত্ক্ষণিকভাবে কল না করে f(x-1)
xnor

@ এক্সনর কোডটি ঠিক করেছেন।
সোহম চৌধুরী

1
এটি প্রথম এন শর্ত নয়, নবম পদটি প্রত্যাবর্তন করবে বলে মনে হচ্ছে।
ডেনিস

কিছু গৌণ সংরক্ষণ: t=0এটি anচ্ছিক প্যারামিটার হিসাবে যেতে পারে fএবং t=t+হতে পারে t+=
xnor

2

গ্রোভি: 122 118 111 চার্স

Golfed:

m=args[0] as int
a=[0]
(1..m-1).each{n->b=a[n-1];x=b-n;(x>0&!(x in a))?a[n]=x:(a[n]=b+n)}
a.each{print "$it "}

Ungolfed:

m = args[0] as int
a = [0]
(1..m-1).each { n->
    b = a[n-1]
    x = b-n
    ( x>0 & !(x in a) ) ? a[n] = x : (a[n] = b+n) 
}
a.each{print "$it "}

নমুনা রান:

bash$ groovy Rec.groovy 14
0 1 3 6 2 7 13 20 12 21 11 22 10 23

2

ক্লোজার: 174 অক্ষর

Golfed:

(defn f[m a](let[n(count a)b(last a)x(- b n)y(if(and(> x 0)(not(.contains a x)))x(+ b n))](if(= m n)a(f m(conj a y)))))(println(f(read-string(first *command-line-args*))[0]))

Ungolfed:

(defn f[m a]
  (let [n (count a) 
        b (last a) 
        x (- b n) 
        y (if (and (> x 0) (not (.contains a x))) x (+ b n)) ]
    (if (= m n) a (f m (conj a y))) ) )

(println (f (read-string (first *command-line-args*)) [0]) )

নমুনা রান:

bash$ java -jar clojure-1.6.0.jar rec.clj 14 
[0 1 3 6 2 7 13 20 12 21 11 22 10 23]

1
আমি আপনাকে STDIN থেকে না পড়ার পরামর্শ দিচ্ছি তবে পরিবর্তে কেবল ফাংশনটির জন্য একটি পূর্ণসংখ্যার যুক্তি নিন :) এছাড়াও আপনি ফর্মটি সংজ্ঞায়িত yকরে কোনও সুবিধা পাবেন না let, যেখানে মূল্য প্রয়োজন সেখানে আপনি সরাসরি অভিব্যক্তিটি ব্যবহার করতে পারেন।
নিকোনিহার

2

ম্যাথক্যাড, 54 "বাইট"

এখানে চিত্র বর্ণনা লিখুন


ব্যবহারকারীর দৃষ্টিকোণ থেকে, ম্যাথক্যাড কার্যকরভাবে একটি 2 ডি হোয়াইটবোর্ড, বাম থেকে ডান, উপরে থেকে নীচে থেকে এক্সপ্রেশন সহ মূল্যায়ন করা হয়। ম্যাথক্যাড একটি প্রচলিত "পাঠ্য" ইনপুট সমর্থন করে না, পরিবর্তে একটি অভিব্যক্তি, পাঠ্য, প্লট বা উপাদান সন্নিবেশ করানোর জন্য পাঠ্য এবং বিশেষ কী / সরঞ্জামদণ্ড / মেনু আইটেমগুলির সংমিশ্রণটি ব্যবহার করে। উদাহরণস্বরূপ, সংজ্ঞা অপারেটর লিখতে ":" টাইপ করুন (স্ক্রিনে ": =" হিসাবে দেখানো হয়েছে) বা "সিটিএল-শफ्ट- #" লুপ অপারেটরের প্রবেশের জন্য (পুনরাবৃত্ত পরিবর্তনশীল, পুনরাবৃত্তির মান এবং একটি বডি সহ স্থানধারীদের অন্তর্ভুক্ত) অভিব্যক্তি)। উপরের চিত্রটিতে আপনি যা দেখছেন তা হুবহু ইউজার ইন্টারফেসে এবং "টাইপ করা" হিসাবে প্রদর্শিত হচ্ছে।

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


এগুলি সব ভাল এবং ভাল , তবে আসল কীস্ট্রোকগুলি কী কী?
জো কিং


2

স্ট্যাক্স , 19 বাইট

É╖C8½ΔL▄░▬L+≡ΩSa⌂¼╧

এটি চালান এবং এটি ডিবাগ করুন

আনপ্যাকড, নিরবচ্ছিন্ন এবং মন্তব্য করা হয়েছে, এটি দেখতে এটির মতো দেখাচ্ছে। এটি ক্রমটি এখন পর্যন্ত স্ট্যাকের উপরে রাখে এবং A(n - 1)এক্স রেজিস্টারে মনে রাখে । পুনরাবৃত্তি সূচক জন্য ব্যবহৃত হয় n। প্রথমবারের মাধ্যমে, এটি 0, তবে সেই পুনরাবৃত্তিতে এটি 0 কোনও বিশেষ ক্ষেত্রে ছাড়াই উত্পন্ন করে, তাই অফ-বাই -1 সূচকটির জন্য সামঞ্জস্য করার দরকার নেই।

0X      push 0 to main stack and store it in X register, which will store A(n - 1)
z       push an empty array that will be used to store the sequence
,D      pop input from input stack, execute the rest of the program that many times
  xi-Y  push (x-register - iteration-index) and store it in the Y register
        this is (A(n - 1) - n)
  0>    test if (A(n - 1) - n) is greater than 0 (a)
  ny#   count number of times (A(n - 1) - n) occurs in the sequence so far (b)
  >     test if (a) > (b)
    y   (A(n - 1) - n)
    xi+ A(n - 1) + n
  ?     if/else;  choose between the two values based on the condition
  X     store the result in the X register
  Q     print without popping
  +     append to sequence array

এটি চালান এবং এটি ডিবাগ করুন


মজাদার. কিভাবে কাজ করে?
উজ্জ্বল করুন don

1
@ ডনব্রাইট: কিছু টিকা এবং ব্যাখ্যা যুক্ত করা হয়েছে।
পুনরাবৃত্তিযোগ্য

2

পাইথ, 31 বাইট

VQ=+Y?Y?|>NeYhxY-eYN+eYN-eYNZ)Y

সাইটে স্বাগতম!
গম উইজার্ড

স্বাগত. কোড-কেবল উত্তরগুলি নিরুৎসাহিত করা হয়েছে কারণ সেগুলি স্ব-মানের হিসাবে স্বয়ংক্রিয়ভাবে পতাকাঙ্কিত হয়। : এই মত একটি ব্যাখ্যা যোগ করুন, এবং একটি অনলাইন অনুবাদক একটি লিঙ্ক জুড়ে বিবেচনা tio.run/##K6gsyfj/PyzQVjvSPtK@xs4vNTKjIlI3NdJPG4hBdJRm5P//hoYA
mbomb007

2

পাইথ , 24 বাইট

tu+G-eG_W|g0J-eGH}JGHQ]0

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

tu+G-eG_W|g0J-eGH}JGHQ]0   Implicit: Q=eval(input())
 u                   Q     Reduce [0-Q)...
                      ]0   ... with initial value G=[0], next value as H:
              eG             Last value of G (sequence so far)
             -  H            Take H from the above
            J                Store in J
          g0J                0 >= J
                 }JG         Is J in G?
         |                   Logical OR of two previous results
       _W           H        If the above is true, negate H, otherwise leave as positive
    -eG                      Subtract the above from last value in G
  +G                         Append the above to G
                           The result of the reduction is the sequence with an extra leading 0
t                          Remove a leading 0, implicit print

1

পাওয়ারশেল (103)

$n=Read-Host;$a=@(0);$n-=1;1..$n|%{$x=$a[-1]-$_;if($x-gt0-and!($a-like$x)){$a+=$x}else{$a+=$x+2*$_}};$a

আরও একটি 'শব্দ-শব্দের' বাস্তবায়ন এখানেও রয়েছে। পাওয়ারশেলের জন্য আশ্চর্যজনকভাবে পাঠযোগ্য।

সিকোয়েন্সটি অ্যারে $ এতে সংরক্ষণ করা হয় এবং প্রতি লাইনে একটি শব্দ ছাপানো হয়।

$ N জন্য = 20 আমরা যদি বিবৃতি চালানো $a-join","আমরা পেতে

0,1,3,6,2,7,13,20,12,21,11,22,10,23,9,24,8,25,43,62


1

সি ++: 180 টি অক্ষর (158 সিন এবং কাউট স্টেটমেন্ট ছাড়াই)

int a[5000000][2]={0},i,k,l;a[0][0]=0;a[0][1]=1;cin>>k;for(i=1;i<=k;i++){l=a[i-1][0];if(l-i>0&&a[l-i][1]!=1){ a[i][0]=l-i;a[l-i][1]=1;}else{ a[i][0]=l+i;a[l+i][1]=1;}cout<<a[i][0]<<endl;

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

অবশ্যই, আমি এটি করব।
অভয় জৈন

1

গণিত - 81 বাইট

Fold[#~Append~(#[[-1]]+If[#[[-1]]>#2&&FreeQ[#,#[[-1]]-#2],-#2,#2])&,{0},Range@#]&

ব্যবহার

Fold[#~Append~(#[[-1]]+If[#[[-1]]>#2&&FreeQ[#,#[[-1]]-#2],-#2,#2])&,{0},Range@#]&[30]
{0,1,3,6,2,7,13,20,12,21,11,22,10,23,9,24,8,25,43,62,42,63,41,18,42,17,43,16,44,15,45}

1

পিএইচপি , 89 বাইট

$f=function($n){for(;$i<$n;$s[$r[$i++]=$p=$m]=1)if($s[$m=$p-$i]|0>$m)$m=$p+$i;return$r;};

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

Ungolfed:

$f = function ($n) {
    for (; $i < $n; $s[$r[$i++] = $p = $m] = 1) {
        if ($s[$m = $p - $i] | 0 > $m) {
            $m = $p + $i;
        }
    }

    return $r;
};
  • $r আমার ফলাফলের জন্য
  • $s ট্র্যাকিং সেন্স জন্য
  • $p পূর্ববর্তী মান
  • $m মি এক্স মান

1

সাধারণ এলআইএসপি (১৩৯ বাইট)

(defun r(n)(do*(s(i 0(1+ i))(a 0(car s))(b 0(- a i)))((> i n)(nreverse s))(push(cond((= 0 i)0)((and(> b 0)(not(find b s)))b)(t(+ a i)))s)))

Ungolfed:

(defun recaman (n)
  (do*
   (series               ; starts as empty list
    (i 0 (1+ i))         ; index variable
    (last 0 (car s))     ; last number in the series
    (low 0 (- last i)))

   ((> i n)              ; exit condition
    (nreverse series))   ; return value

    (push                ; loop body
     (cond
       ((= 0 i) 0)       ; first pass
       ((and
         (> low 0) (not (find low s)))
        low)
       (t (+ last i)))
     series)))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.