login
a(1)=1; for n >= 2, set a(n)=m, where n is the smallest unassigned index with exactly m-1 unassigned indices still remaining between m and m-1.
6

%I #16 Mar 08 2015 20:43:14

%S 1,2,13,3,6,26,4,11,205,9,5,24,7,51,22,102,20,49,18,8,410,10,16,12,47,

%T 14,100,45,203,43,98,41,3277,39,96,37,201,35,94,15,33,17,408,19,31,21,

%U 92,23,29,25,199,27,90,819,88,197,86,406,84,195,82,1638,80,193,78,404

%N a(1)=1; for n >= 2, set a(n)=m, where n is the smallest unassigned index with exactly m-1 unassigned indices still remaining between m and m-1.

%C 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.

%C 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

%H R. J. Mathar, Apr 28 2007, <a href="/A091023/b091023.txt">Table of n, a(n) for n = 1..78</a>

%H Hans Havermann, <a href="/A091023/a091023.jpg">Illustration of first 1600 terms (with some gaps)</a>

%e 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;

%e the first unassigned term that is two terms away from 2 is a(4), so a(4)=3;

%e the first unassigned term that is 3 terms away from 3 is a(7), so a(7)=4;

%e the first unassigned term that is 4 terms away from 4 is a(11), so a(11)=5;

%e at this point we have 1,2,*,3,*,*,4,*,*,*,5,..., where * indicates a term to which a value has not yet been assigned.

%e 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.

%p 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

%Y Cf. A091052, A091053 (records), A091263 (inverse).

%K nonn,nice

%O 1,2

%A _John W. Layman_, Feb 23 2004

%E More terms from _R. J. Mathar_, Apr 28 2007