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.
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
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]
Crossrefs
Programs
-
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
-
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
Extensions
Edited by N. J. A. Sloane, Nov 10 2024
Comments