|
|
A167047
|
|
Angry numbers: each number n must be more than n places from n-1 and n+1. This sequence makes each number as small as possible as it occurs.
|
|
1
|
|
|
1, 3, 5, 7, 9, 2, 11, 13, 4, 15, 17, 6, 19, 21, 8, 23, 25, 27, 10, 29, 31, 12, 33, 35, 37, 14, 39, 41, 16, 43, 45, 47, 18, 49, 51, 20, 53, 55, 57, 22, 59, 61, 24, 63, 65, 26, 67, 69, 71, 28, 73, 75, 30, 77, 79, 81, 32, 83, 85, 34, 87, 89, 36, 91, 93, 95, 38, 97, 99, 40, 101, 103
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
This sequence is a permutation of the positive integers. A number cannot remain unassigned indefinitely; eventually the placement gets far enough from its neighbors and it gets used.
Each term in this sequence is either the next unused even number or the next unused odd number; after the initial 5 terms there are always 2 or 3 odd numbers between each pair of even numbers.
|
|
LINKS
|
|
|
EXAMPLE
|
After a(1) = 1, we cannot have a(2) = 2, because then 1 and 2 would be too close. a(2) = 3 is OK. Now a(3) can't be 2 because then 2 and 3 would be too close; 4 would also be too close to 3, but 5 is OK. Skipping ahead, a(6) is the first place where 2 is not too close to 3, so a(6) = 2.
|
|
PROG
|
(PARI) dist(n) = n+1
al(n)= {local(v, w, mn, ok);
v=vector(n); w=vector(2*n); u=vector(n);
v[1]=w[1]=1; mn=2;
for(k=2, n,
j=mn-1; ok=0;
while(!ok,
j++; ok=w[j]==0;
if(ok&w[j-1]&abs(k-w[j-1])<dist(j), ok=0);
if(ok&w[j+1]&abs(k-w[j+1])<dist(j+1), ok=0));
v[k]=j; w[j]=k);
while(w[mn], mn++);
v}
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|