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.

A257907 After 1, the first differences of A257906 (its d-sequence).

Original entry on oeis.org

1, 2, 3, -2, 4, -3, 5, -1, 7, -9, 8, -4, 9, -8, 10, -5, 15, -19, 11, -10, 12, -7, 17, -18, 16, -13, 19, -17, 21, -16, 26, -29, 23, -21, 25, -23, 27, -26, 28, -27, 29, -25, 33, -35, 31, -22, 40, -45, 35, -34, 36, -33, 39, -41, 37, -31, 43, -42, 44, -47, 41
Offset: 1

Views

Author

Clark Kimberling, May 16 2015

Keywords

Comments

This is sequence (d(n)) generated by the following generic rule, "Rule 3" (see below) with parameters a(1) = 0 and d(1) = 1, while A257906 gives the corresponding sequence a(n).
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.
See A257905 for a guide to related sequences and conjectures.
An informal version of Rule 3 follows: the sequences "d" and "a" are jointly generated, the "driving idea" idea being that each new term of "d" is obtained by a greedy algorithm. See A131388 for a similar procedure (Rule 1).

Examples

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

Crossrefs

After initial 1, the first differences of A257906 (the associated a-sequence for this rule).
Cf. A257905.

Programs

  • Haskell
    import Data.List ((\\))
    a257907 n = a257907_list !! (n-1)
    a257907_list = 1 : f [0] [1] where
       f xs@(x:_) ds = g [2 - x .. -1] where
         g [] = h : f ((x + h) : xs) (h : ds) where
                      (h:_) = [z | z <- [1..] \\ ds, x - z `notElem` xs]
         g (h:hs) | h `notElem` ds && y `notElem` xs = h : f (y:xs) (h:ds)
                  | otherwise = g hs
                  where y = x + h
    -- Reinhard Zumkeller, Jun 03 2015
  • Mathematica
    {a, f} = {{0}, {1}}; 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 *)