[go: up one dir, main page]

login
A091023
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
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, 14, 100, 45, 203, 43, 98, 41, 3277, 39, 96, 37, 201, 35, 94, 15, 33, 17, 408, 19, 31, 21, 92, 23, 29, 25, 199, 27, 90, 819, 88, 197, 86, 406, 84, 195, 82, 1638, 80, 193, 78, 404
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
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
Cf. A091052, A091053 (records), A091263 (inverse).
Sequence in context: A088253 A249224 A217010 * A337838 A120863 A286459
KEYWORD
nonn,nice
AUTHOR
John W. Layman, Feb 23 2004
EXTENSIONS
More terms from R. J. Mathar, Apr 28 2007
STATUS
approved