OFFSET
1,2
COMMENTS
Suggested by Leroy Quet in SeqFan memo 3602 on Feb 16 2004, where he gave the terms with values 1-16, with a(6) the first unassigned term.
Considering the number of unassigned indices to the left of the current position gives an equivalent sequence, A091068, which is easier to analyze. - N. J. A. Sloane, Feb 23 2004
LINKS
R. J. Mathar, Apr 28 2007, Table of n, a(n) for n = 1..78
Hans Havermann, Illustration of first 1600 terms (with some gaps)
EXAMPLE
After 1 has been assigned to a(1), the first unassigned term that is one term away from 1 is a(2), so a(2)=2;
the first unassigned term that is two terms away from 2 is a(4), so a(4)=3;
the first unassigned term that is 3 terms away from 3 is a(7), so a(7)=4;
the first unassigned term that is 4 terms away from 4 is a(11), so a(11)=5;
at this point we have 1,2,*,3,*,*,4,*,*,*,5,..., where * indicates a term to which a value has not yet been assigned.
The next value to assign is 6 which must be assigned to the first term of the sequence that is 5 terms away from a(11)=5; since a(5) has not yet been assigned a value and since at this point 5 terms with unassigned values lie between a(5) and a(11), we must assign 6 to a(5), i.e., a(5)=6.
MAPLE
nmax := 20000 : a := [seq(0, i=1..nmax)] : a := subsop(1=1, a) : a := subsop(2=2, a) : prevn := 2 : n := 3: while true do us := n ; atst := prevn-1 ; tstdown := false ; while us > 0 and atst>0 do if op(atst, a) =0 then us := us-1 ; if us = 1 then tstdown := true ; a := subsop(atst=n, a) ; prevn := atst ; break ; fi ; fi ; atst := atst -1 ; od ; if tstdown = false then us := n ; atst := prevn+1 ; while us > 0 do if op(atst, a) =0 then us := us-1 ; if us = 1 then a := subsop(atst=n, a) ; prevn := atst ; break ; fi ; fi ; atst := atst +1 ; od ; fi ; for i from 1 to 150 do printf("%d, ", op(i, a)) ; od ; print() ; n := n+1 ; od : # R. J. Mathar, Apr 28 2007
CROSSREFS
KEYWORD
nonn,nice
AUTHOR
John W. Layman, Feb 23 2004
EXTENSIONS
More terms from R. J. Mathar, Apr 28 2007
STATUS
approved