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.

A257905 Sequence (a(n)) generated by Rule 3 (in Comments) with a(1) = 0 and d(1) = 0.

Original entry on oeis.org

0, 1, 3, 2, 5, 11, 4, 9, 6, 13, 7, 15, 10, 8, 17, 35, 12, 25, 14, 29, 16, 33, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 30, 26, 53, 24, 49, 40, 28, 57, 27, 55, 31, 63, 32, 65, 38, 42, 34, 69, 36, 73, 48, 97, 44, 89, 46, 93, 51, 103, 52, 105, 50, 101
Offset: 1

Views

Author

Clark Kimberling, May 16 2015

Keywords

Comments

Rule 3 follows. For k >= 1, let A(k) = {a(1), …, a(k)} and D(k) = {d(1), …, d(k)}. Begin with k = 1 and nonnegative integers a(1) and d(1).
Step 1: If there is an integer h such that 1 - a(k) < h < 0 and h is not in D(k) and a(k) + h is not in A(k), let d(k+1) be the least such h, let a(k+1) = a(k) + h, replace k by k + 1, and repeat Step 1; otherwise do Step 2.
Step 2: Let h be the least positive integer not in D(k) such that a(k) - h is not in A(k). Let a(k+1) = a(k) + h and d(k+1) = h. Replace k by k+1 and do Step 1.
Conjecture: suppose that a(1) is an nonnegative integer and d(1) is an integer.
If a(1) = 0 and d(1) != 1, then (a(n)) is a permutation of the nonnegative integers;
if a(1) = 0 and d(1) = 1, then (a(n)) is a permutation of the nonnegative integers excluding 1;
if a(1) = 1, then (a(n)) is a permutation of the positive integers;
if a(1) > 1, then (a(n)) is a permutation of the integers >1;
if d(1) = 0, then (d(n)) is a permutation of the integers;
if d(1) !=0, then (d(n)) is a permutation of the nonzero integers.
Guide to related sequences:
a(1) d(1) (a(n)) (d(n))

Examples

			a(1) = 0, d(1) = 0;
a(2) = 1, d(2) = 1;
a(3) = 3, d(3) = 2;
a(4) = 2, d(4) = -1.
		

Crossrefs

Cf. A256283 (putative inverse).

Programs

  • Haskell
    import Data.List ((\\))
    a257905 n = a257905_list !! (n-1)
    a257905_list = 0 : f [0] [0] where
       f xs@(x:_) ds = g [2 - x .. -1] where
         g [] = y : f (y:xs) (h:ds) where
                      y = x + h
                      (h:_) = [z | z <- [1..] \\ ds, x - z `notElem` xs]
         g (h:hs) | h `notElem` ds && y `notElem` xs = y : f (y:xs) (h:ds)
                  | otherwise = g hs
                  where y = x + h
    -- Reinhard Zumkeller, Jun 03 2015
  • Mathematica
    {a, f} = {{0}, {0}}; Do[tmp = {#, # - Last[a]} &[Min[Complement[#, Intersection[a, #]]&[Last[a] + Complement[#, Intersection[f, #]] &[Range[2 - Last[a], -1]]]]];
    If[! IntegerQ[tmp[[1]]], tmp = {Last[a] + #, #} &[NestWhile[# + 1 &, 1, ! (! MemberQ[f, #] && ! MemberQ[a, Last[a] - #]) &]]]; AppendTo[a, tmp[[1]]]; AppendTo[f, tmp[[2]]], {120}]; {a, f} (* Peter J. C. Moses, May 14 2015 *)

Formula

a(n) = A258046(n) - 1 for n >= 1.