login
A329447
Start with a(0)=0; thereafter, look left and identify the least frequent digit d so far (in case of a tie, choose the smallest d): after then a(n) = 10c + d, where c > 0 is the number of times d has appeared so far.
7
0, 10, 11, 20, 12, 22, 30, 13, 23, 33, 40, 14, 24, 34, 44, 50, 15, 25, 35, 45, 55, 60, 16, 26, 36, 46, 56, 66, 70, 17, 27, 37, 47, 57, 67, 77, 80, 18, 28, 38, 48, 58, 68, 78, 88, 90, 19, 29, 39, 49, 59, 69, 79, 89, 99, 100, 112, 113, 114, 115, 116, 117, 118, 119, 120, 123, 124, 125, 126, 127, 128, 129
OFFSET
0,2
COMMENTS
The term "10c + d" are to be read "c digits d have appeared so far", as in the "look and see" sequences llike A045918.
It follows immediately from the definition that all terms are distinct. For a sorted list of the terms, see A376779. For a tabular method of computing a(n), see the triangle in A377905. - N. J. A. Sloane, Nov 11 2024
An analogous sequence may be obtained for any initial term a(0). Sequence A329448 lists the starting values that will appear a second time later in the respective sequence.
LINKS
M. F. Hasler, Table of n, a(n) for n = 0..10000 (independently computed by Jean-Marc Falcoz).
Eric Angelini, Look left and say, Cinquante signes Blog Post, Nov 14 2019.
Eric Angelini, Look left and say, Cinquante signes Blog Post, Nov 14 2019. [Local copy, with permission]
MAPLE
a[0]:= 0;
S[0]:= 1:
for i from 1 to 9 do S[i]:= 0 od:
for n from 1 to 100 do
a[n]:= min(select(`>=`, [seq(10*S[i]+i, i=0..9)], 10));
L:= convert(a[n], base, 10);
for d from 0 to 9 do S[d]:= S[d] + numboccur(d, L) od;
od:
seq(a[n], n=0..100); # Robert Israel, Nov 14 2019
PROG
(PARI) A329447_vec(N)={my(c=Vec(1, 10), t); vector(N, i, for(j=1, #i=vecsort(c, , 1), if(c[i[j]], i=i[j]; break)); for(j=1, #i=digits(t=c[i]*10+i-1), c[i[j]+1]++); t)} \\ Returns the vector a(1..N)
(Python)
from itertools import islice
def agen(): # generator of terms
counts = [1] + [0 for i in range(1, 10)]
yield 0
while True:
m = float('inf')
for i in range(10):
if counts[i] and counts[i] < m:
m, argm = counts[i], i
an = 10*m + argm
yield an
for d in str(an): counts[int(d)] += 1
print(list(islice(agen(), 72))) # Michael S. Branicky, Nov 11 2024
CROSSREFS
Cf. A045918 (describe n), A005150 (the classic "Say What You See"), A139282 (count vowels so far), A139097 (count letters so far).
A376779 gives terms in increasing order. See also A377905.
Sequence in context: A216996 A165265 A329818 * A352339 A197652 A261909
KEYWORD
nonn,base,changed
AUTHOR
Eric Angelini and M. F. Hasler, Nov 14 2019
EXTENSIONS
Edited by N. J. A. Sloane, Nov 10 2024
STATUS
approved