[go: up one dir, main page]

login
Lexicographically earliest infinite sequence of distinct terms > 0 such that one digit of a(n) is strictly smaller than one digit of a(n+1).
1

%I #19 Jun 24 2023 13:28:08

%S 1,2,3,4,5,6,7,8,19,12,13,14,15,16,17,18,20,10,11,21,22,23,24,25,26,

%T 27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,

%U 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70

%N Lexicographically earliest infinite sequence of distinct terms > 0 such that one digit of a(n) is strictly smaller than one digit of a(n+1).

%H Michael S. Branicky, <a href="/A363490/b363490.txt">Table of n, a(n) for n = 1..10000</a>

%e Digit 1 is < 2; 2 is < 3; etc. Then comes 8: if we write 9 after 8, the sequence stops (as there is no digit > 9). This forces a(9) = 19 (instead of 9) as the smallest available integer not leading to a contradiction. Integers consisting only of 9s (9, 99, 999, etc.) will thus never be part of the sequence.

%o (Python)

%o from itertools import islice

%o def agen(): # generator of terms

%o an, aset, mink = 1, {1}, 2

%o while True:

%o yield an

%o k, m = mink, min(str(an))

%o while k in aset or (s:=set(str(k))) == {"9"} or max(s) <= m:

%o k += 1

%o an = k

%o aset.add(an)

%o while mink in aset or set(str(mink)) == {"9"}:

%o aset.discard(mink); mink += 1

%o print(list(islice(agen(), 70))) # _Michael S. Branicky_, Jun 05 2023

%Y Cf. A294069.

%K base,nonn

%O 1,2

%A _Eric Angelini_, Jun 05 2023