cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-10 of 11 results. Next

A005132 Recamán's sequence (or Recaman's sequence): a(0) = 0; for n > 0, a(n) = a(n-1) - n if nonnegative and not already in the sequence, otherwise a(n) = a(n-1) + n.

Original entry on oeis.org

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, 79, 113, 78, 114, 77, 39, 78, 38, 79, 37, 80, 36, 81, 35, 82, 34, 83, 33, 84, 32, 85, 31, 86, 30, 87, 29, 88, 28, 89, 27, 90, 26, 91, 157, 224, 156, 225, 155
Offset: 0

Views

Author

N. J. A. Sloane and Simon Plouffe, May 16 1991

Keywords

Comments

The name "Recamán's sequence" is due to N. J. A. Sloane, not the author!
I conjecture that every number eventually appears - see A057167, A064227, A064228. - N. J. A. Sloane. That was written in 1991. Today I'm not so sure that every number appears. - N. J. A. Sloane, Feb 26 2017
As of Jan 25 2018, the first 13 missing numbers are 852655, 930058, 930557, 964420, 966052, 966727, 969194, 971330, 971626, 971866, 972275, 972827, 976367, ... For further information see the "Status Report" link. - Benjamin Chaffin, Jan 25 2018
From David W. Wilson, Jul 13 2009: (Start)
The sequence satisfies [1] a(n) >= 0, [2] |a(n)-a(n-1)| = n, and tries to avoid repeats by greedy choice of a(n) = a(n-1) -+ n.
This "wants" to be an injection on N = {0, 1, 2, ...}, as it attempts to avoid repeats by choice of a(n) = a(n-1) + n when a(n) = a(n-1) - n is a repeat.
Clearly, there are injections satisfying [1] and [2], e.g., a(n) = n(n+1)/2.
Is there a lexicographically earliest injection satisfying [1] and [2]? (End)
Answer: Yes, of course: The set of injections satisfying [1] and [2] is not empty, so there's a lexicographically least element. More concretely, it starts with the same 23 terms a(0..22) which are known to be minimal, but after a(22) = 41 it has to go on with a(23) = 41 + 23 = 64, since choosing "-" here necessarily yields a non-injective sequence. See A171884. - M. F. Hasler, Apr 01 2019
It appears that a(n) is also the value of "x" and "y" of the endpoint of the L-toothpick structure mentioned in A210606 after n-th stage. - Omar E. Pol, Mar 24 2012
Of course this is not a permutation of the integers: the first repeated term is 42 = a(24) = a(20). - M. F. Hasler, Nov 03 2014. Also 43 = a(18) = a(26). - Jon Perry, Nov 06 2014
Of all the sequences in the OEIS, this one is my favorite to listen to. Click the "listen" button at the top, set the instrument to "103. FX 7 (Echoes)", click "Save", and open the MIDI file with a program like QuickTime Player 7. - N. J. A. Sloane, Aug 08 2017
This sequence cycles clockwise around the OEIS logo. - Ryan Brooks, May 09 2020

Examples

			Consider n=6. We have a(5)=7 and try to subtract 6. The result, 1, is certainly positive, but we cannot use it because 1 is already in the sequence. So we must add 6 instead, getting a(6) = 7 + 6 = 13.
		

References

  • Alex Bellos and Edmund Harriss, Visions of the Universe (2016), Unnumbered pages. Includes Harriss's illustration of the first 65 steps drawn as a spiral.
  • Benjamin Chaffin, N. J. A. Sloane, and Allan Wilks, On sequences of Recaman type, paper in preparation, 2006.
  • Bernardo Recamán Santos, letter to N. J. A. Sloane, Jan 29 1991
  • N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).

Crossrefs

Cf. A057165 (addition steps), A057166 (subtraction steps), A057167 (steps to hit n), A008336, A046901 (simplified version), A064227 (records for reaching n), A064228 (value of n that take a record number of steps to reach), A064284 (no. of times n appears), A064290 (heights of terms), A064291 (record highs), A119632 (condensed version), A063733, A079053, A064288, A064289, A064387, A064388, A064389, A228474 (bidirectional version).
A065056 gives partial sums, A160356 gives first differences.
A row of A066201.
Cf. A171884 (injective variant).
See A324784, A324785, A324786 for the "low points".

Programs

  • Haskell
    import Data.Set (Set, singleton, notMember, insert)
    a005132 n = a005132_list !! n
    a005132_list = 0 : recaman (singleton 0) 1 0 where
       recaman :: Set Integer -> Integer -> Integer -> [Integer]
       recaman s n x = if x > n && (x - n) `notMember` s
                          then (x-n) : recaman (insert (x-n) s) (n+1) (x-n)
                          else (x+n) : recaman (insert (x+n) s) (n+1) (x+n)
    -- Reinhard Zumkeller, Mar 14 2011
    
  • MATLAB
    function a=A005132(m)
    % m=max number of terms in a(n). Offset n:0
    a=zeros(1,m);
    for n=2:m
        B=a(n-1)-(n-1);
        C=0.^( abs(B+1) + (B+1) );
        D=ismember(B,a(1:n-1));
        a(n)=a(n-1)+ (n-1) * (-1)^(C + D -1);
    end
    % Adriano Caroli, Dec 26 2010
    
  • Maple
    h := array(1..100000); maxt := 100000; a := [1]; ad := [1]; su := []; h[1] := 1; for nx from 2 to 500 do t1 := a[nx-1]-nx; if t1>0 and h[t1] <> 1 then su := [op(su), nx]; else t1 := a[nx-1]+nx; ad := [op(ad), nx]; fi; a := [op(a),t1]; if t1 <= maxt then h[t1] := 1; fi; od: # a is A005132, ad is A057165, su is A057166
    A005132 := proc(n)
        option remember; local a, found, j;
        if n = 0 then return 0 fi;
        a := procname(n-1) - n ;
        if a <= 0 then return a+2*n fi;
        found := false;
        for j from 0 to n-1 while not found do
            found := procname(j) = a;
        od;
        if found then a+2*n else a fi;
    end:
    seq(A005132(n), n=0..70); # R. J. Mathar, Apr 01 2012 (reformatted by Peter Luschny, Jan 06 2019)
  • Mathematica
    a = {1}; Do[ If[ a[ [ -1 ] ] - n > 0 && Position[ a, a[ [ -1 ] ] - n ] == {}, a = Append[ a, a[ [ -1 ] ] - n ], a = Append[ a, a[ [ -1 ] ] + n ] ], {n, 2, 70} ]; a
    (* Second program: *)
    f[s_List] := Block[{a = s[[ -1]], len = Length@s}, Append[s, If[a > len && !MemberQ[s, a - len], a - len, a + len]]]; Nest[f, {0}, 70] (* Robert G. Wilson v, May 01 2009 *)
    RecamanSeq[i_Integer] := Fold[With[{lst=Last@#, len=Length@#}, Append[#, If[lst > len && !MemberQ[#, lst - len], lst - len, lst + len]]] &, {0}, Range@i]; RecamanSeq[10^5] (* Mikk Heidemaa, Nov 02 2024 *)
  • PARI
    a(n)=if(n<2,1,if(abs(sign(a(n-1)-n)-1)+setsearch(Set(vector(n-1,i,a(i))),a(n-1)-n),a(n-1)+n,a(n-1)-n))  \\ Benoit Cloitre
    
  • PARI
    A005132(N=1000,show=0)={ my(s,t); for(n=1,N, s=bitor(s,1<M. F. Hasler, May 11 2008, updated M. F. Hasler, Nov 03 2014
    
  • Python
    l=[0]
    for n in range(1, 101):
        x=l[n - 1] - n
        if x>0 and not x in l: l+=[x, ]
        else: l+=[l[n - 1] + n]
    print(l) # Indranil Ghosh, Jun 01 2017
    
  • Python
    def recaman(n):
      seq = []
      for i in range(n):
        if(i == 0): x = 0
        else: x = seq[i-1]-i
        if(x>=0 and x not in seq): seq+=[x]
        else: seq+=[seq[i-1]+i]
      return seq
    print(recaman(1000)) # Ely Golden, Jun 14 2018
    
  • Python
    from itertools import count, islice
    def A005132_gen(): # generator of terms
        a, aset = 0, set()
        for n in count(1):
            yield a
            aset.add(a)
            a = b if (b:=a-n)>=0 and b not in aset else a+n
    A005132_list = list(islice(A005132_gen(),30)) # Chai Wah Wu, Sep 15 2022

Formula

a(k) = A000217(k) - 2*Sum_{i=1..n} A057166(i), for A057166(n) <= k < A057166(n+1). - Christopher Hohl, Jan 27 2019

Extensions

Allan Wilks, Nov 06 2001, computed 10^15 terms of this sequence. At this point all the numbers below 852655 had appeared, but 852655 = 5*31*5501 was missing.
After 10^25 terms of A005132 the smallest missing number is still 852655. - Benjamin Chaffin, Jun 13 2006
Even after 7.78*10^37 terms, the smallest missing number is still 852655. - Benjamin Chaffin, Mar 28 2008
Even after 4.28*10^73 terms, the smallest missing number is still 852655. - Benjamin Chaffin, Mar 22 2010
Even after 10^230 terms, the smallest missing number is still 852655. - Benjamin Chaffin, 2018
Changed "positive" in definition to "nonnegative". - N. J. A. Sloane, May 04 2020

A057167 Term in Recamán's sequence A005132 where n appears for first time, or -1 if n never appears.

Original entry on oeis.org

0, 1, 4, 2, 131, 129, 3, 5, 16, 14, 12, 10, 8, 6, 31, 29, 27, 25, 23, 99734, 7, 9, 11, 13, 15, 17, 64, 62, 60, 58, 56, 54, 52, 50, 48, 46, 44, 42, 40, 38, 111, 22, 20, 18, 28, 30, 32, 222, 220, 218, 216, 214, 212, 210, 208, 206, 204, 202, 200, 198, 196
Offset: 0

Views

Author

N. J. A. Sloane, Sep 14 2000

Keywords

Crossrefs

Programs

  • Maple
    w := array(1..10000); for j from 1 to 100 do l := 0; for k from 1 to nops(a) do if a[k] = j then l := k; exit; fi; od: w[j] := l; od: s := [seq(w[j],j=1..100)]; # where a is an array formed from sequence A005132
  • Mathematica
    A005132 = {0}; Do[If[(r = Last[A005132] - n) <= 0 || MemberQ[ A005132, r], r = r + 2n]; AppendTo[ A005132, r], {n, 1, 10^5}]; a[n_] := If[p = Position[ A005132, n]; p == {}, 0, p[[1, 1]] - 1]; Table[a[n], {n, 1, 60}] (* Jean-François Alcover, Jul 18 2012 *)
  • PARI
    first(n) = my(a=vector(n), r=[0]); while(#Set(a)Iain Fox, Jul 11 2022
    
  • Python
    from itertools import count, islice
    def agen(): # generator of terms
        an, A005132set, inv, y = 0, {0}, {0: 0}, 0
        for n in count(1):
            t = an - n
            an = t if t >= 0 and t not in A005132set else an + n
            A005132set.add(an)
            inv[an] = n
            while y in inv: yield inv[y]; y += 1
    print(list(islice(agen(), 61))) # Michael S. Branicky, Jul 12 2022

Extensions

I conjecture a(n) is never -1 - but see A064227, A064228.
a(0)=0 added and escape clause value changed to -1 by N. J. A. Sloane, May 01 2020

A064289 Height of n-th term in Recamán's sequence A005132.

Original entry on oeis.org

0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 8, 7, 8, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 8, 9, 8, 9, 8, 9, 8, 9, 8, 9, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7
Offset: 0

Views

Author

N. J. A. Sloane, Sep 25 2001

Keywords

Comments

The height of a term in A005132 = number of addition steps - number of subtraction steps to produce it.
Partial sums of A160357. - Allan C. Wechsler, Sep 08 2019

Examples

			A005132 begins 1, 3, 6, 2, 7, 13, 20, 12, ... and these terms have heights 1, 2, 3, 2, 3, 4, 5, 4, ...
		

Crossrefs

Programs

  • Maple
    g:= proc(n) is(n=0) end:
    b:= proc(n) option remember; local t;
          if n=0 then 0 else t:= b(n-1)-n; if t<=0 or g(t)
          then t:= b(n-1)+n fi; g(t):= true; t fi
        end:
    a:= proc(n) option remember; `if`(n=0, 0,
           a(n-1)+signum(b(n)-b(n-1)))
        end:
    seq(a(n), n=0..120);  # Alois P. Heinz, Sep 08 2019
  • Mathematica
    g[n_] := n == 0;
    b[n_] := b[n] = Module[{t}, If[n == 0, 0, t = b[n - 1] - n; If[t <= 0 || g[t], t = b[n - 1] + n]; g[t] = True; t]];
    a[n_] := a[n] = If[n == 0, 0, a[n - 1] + Sign[b[n] - b[n - 1]]];
    a /@ Range[0, 100] (* Jean-François Alcover, Apr 11 2020, after Alois P. Heinz *)

Extensions

a(0)=0 prepended by Allan C. Wechsler, Sep 08 2019

A064290 First number of height n in Recamán's sequence A005132.

Original entry on oeis.org

0, 1, 3, 6, 13, 20, 43, 62, 113, 224, 367, 494, 833, 1815, 3379, 5551, 9169, 17864, 32978, 58964, 106218, 131313, 155719, 180118, 591890, 881467, 1345004, 3012446, 5728819, 9309579, 17512700, 25641318, 52978675, 61998980, 125130665, 244636214, 280766754, 566273517, 1031389697, 2182394227, 3045423658, 3454917187
Offset: 1

Views

Author

N. J. A. Sloane, Sep 25 2001

Keywords

Comments

The height of a term in A005132 = number of addition steps - number of subtraction steps to reach it (see A064289).
Needs a b-file. - N. J. A. Sloane, May 01 2020

Examples

			A005132 begins 0, 1, 3, 6, 2, 7, 13, 20, 12, ... and these terms have heights 0, 1, 2, 3, 2, 3, 4, 5, 4, ...
		

Crossrefs

Extensions

a(0) = 0 added by N. J. A. Sloane, May 01 2020

A064228 From Recamán's sequence (A005132): values of n achieving records in A057167.

Original entry on oeis.org

0, 1, 2, 4, 19, 61, 879, 1355, 2406
Offset: 1

Views

Author

N. J. A. Sloane, Sep 22 2001

Keywords

Comments

If R(n) is the n-th term of Recamán's sequence (A005132), sequence gives values of R(n) that take a record number of steps to appear. A064227 gives corresponding values of n.

Crossrefs

Extensions

a(8) and a(9) from Allan Wilks, Nov 06 2001. After 10^15 terms of A005132, the smallest missing number was 852655.
After 10^25 terms of A005132 the smallest missing number is still 852655. - Benjamin Chaffin, Jun 13 2006
Even after 4.28*10^73 terms, the smallest missing number is still 852655. - Benjamin Chaffin, Mar 22 2010
Even after 10^230 terms, the smallest missing number is still 852655. - Benjamin Chaffin, 2018
Initial term 0 added by N. J. A. Sloane, Feb 26 2023

A064288 Height of n when it appears for first time in Recamán's sequence A005132.

Original entry on oeis.org

0, 1, 2, 2, 7, 7, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 18, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 19, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9
Offset: 0

Views

Author

N. J. A. Sloane, Sep 25 2001

Keywords

Comments

The height of a term in A005132 = number of addition steps - number of subtraction steps to produce it (see A064289).

Examples

			A005132 begins 0, 1, 3, 6, 2, 7, 13, 20, 12, ... and these terms have heights 0, 1, 2, 3, 2, 3, 4, 5, 4, ...
		

Crossrefs

Programs

  • C
    See Links section.

Extensions

a(0)=0 added by N. J. A. Sloane, May 01 2020

A064293 Last number of height n in Recamán's sequence A005132.

Original entry on oeis.org

1, 2, 7, 8, 14, 26, 4, 47, 92, 111, 181, 150, 371, 361, 781, 828, 366, 19, 61, 879, 4802, 3378, 5329, 9462, 32102, 18954, 18107, 16114, 4202, 25231, 60240, 92404, 92188, 14804
Offset: 1

Views

Author

N. J. A. Sloane, Sep 26 2001

Keywords

Comments

The height of a term in A005132 = number of addition steps - number of subtraction steps to produce it.

Crossrefs

A064292 Term at which first number of height n occurs in Recamán's sequence A005132.

Original entry on oeis.org

0, 1, 2, 3, 6, 7, 18, 19, 34, 67, 102, 115, 190, 453, 846, 1305, 2066, 4139, 7676, 13511, 23976, 24381, 24398, 24399, 97984, 136629, 196644, 475235, 926170, 1466185, 2817020, 3850823, 8348662, 8466695, 17694894, 36130539, 36130540, 75209333, 138765002, 315446985, 409493528, 409493529
Offset: 0

Views

Author

N. J. A. Sloane, Sep 26 2001

Keywords

Comments

The height of a term in A005132 = number of addition steps - number of subtraction steps to produce it.

Crossrefs

Extensions

a(0)=0 added by N. J. A. Sloane, May 01 2020

A064294 Term at which last number of height n occurs in Recamán's sequence A005132.

Original entry on oeis.org

1, 4, 5, 16, 31, 64, 131, 222, 403, 770, 1409, 2652, 4825, 9078, 16773, 30768, 56827, 99734, 181653, 328002, 588583, 1032996, 1787013, 3220128, 5771203, 10201340, 18394609, 32144188, 58055311, 101762018, 173367175, 302844912, 511518279, 904032692
Offset: 1

Views

Author

N. J. A. Sloane, Sep 26 2001

Keywords

Comments

The height of a term in A005132 = number of addition steps - number of subtraction steps to produce it.

Crossrefs

Cf. A005132, A064290, A064292, A064293. This sequence and A064492 keep pretty close together.

A245394 Record values in A125717.

Original entry on oeis.org

0, 1, 3, 6, 7, 13, 20, 22, 23, 24, 25, 26, 27, 47, 49, 72, 73, 75, 77, 79, 81, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 134, 189, 245, 253, 298, 341, 448, 454, 460, 525, 540, 546, 552, 558, 561, 734, 759, 769, 883, 892, 893, 903, 909, 915, 921, 927
Offset: 1

Views

Author

Reinhard Zumkeller, Jul 21 2014

Keywords

Comments

a(n) = A125717(A245395(n)) and A125717(m) < a(n) for m < A245395(n).

Crossrefs

Programs

  • Haskell
    a245394 n = a245394_list !! (n-1)
    (a245394_list, a245395_list) =  unzip $ f [0..] a125717_list (-1) where
       f (x:xs) (y:ys) r = if y > r then (y,x) : f xs ys y else f xs ys r
Showing 1-10 of 11 results. Next