login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

Integers >=0 whose decimal digits are topologically distinct from those of any smaller number.
0

%I #40 Jul 22 2024 15:33:20

%S 0,1,8,10,11,18,40,48,88,100,101,108,111,118,188,400,408,488,888,1000,

%T 1001,1008,1011,1018,1088,1111,1118,1188,1888,4000,4008,4088,4888,

%U 8888,10000,10001,10008,10011,10018,10088,10111,10118,10188,10888,11111,11118

%N Integers >=0 whose decimal digits are topologically distinct from those of any smaller number.

%C Assumes 0 without a slash or a center dot, closed 4, 6, and 9, and no overlapping of multiple digits. Digits homologous to a (flattened) sphere: 1, 2, 3, 5, 7; to a torus: 0, 4, 6, 9; to a double torus: 8. Sequence is a run of the terms in ascending numeric order.

%C All topologically distinct terms can be represented by nondecreasing sequences of strings of 0s, 1s, and 8s. However, terms cannot begin with 0. Therefore, if a string has 0s, then (i) if there are any 1s, one of them moves to the front, (ii) else, the first 0 is replaced with 4. Sequence is the resulting strings sorted as base-10 numbers. - _Michael S. Branicky_, Jul 11 2024

%e 0 is homologous to 1 torus, so a(1)=0.

%e 1 is homologous to 1 sphere, so a(2)=1.

%e 2 is homologous to 1 sphere, same as 1, so it is not in the sequence.

%e 4 is homologous to 1 torus, same as 0, so it is not in the sequence.

%e 8 is homologous to 1 double torus, so a(3)=8.

%e 10 is homologous to 1 sphere and 1 torus, so a(4)=10.

%e 11 is homologous to 2 spheres, so a(5)=11.

%e 14 is homologous to 1 sphere and 1 torus, same as 10, so it is not in the sequence.

%e 41 is homologous to 1 sphere and 1 torus, same as 10, so it is not in the sequence.

%o (PARI) df(d, c)=(10^c-1)/9*d

%o n=0; a=0; at=1; while(true, a++; at+=a+1; ac=0; for(b=0, a, for(c=0, b, n++; print(n, " ", if(n<=2, n-1, ac+b-c+1<at, 10^(a-1)+df(1, b)+df(7, c), ac+1<at, 4*10^(a-1)+df(8, c), df(8, a))); if(n==10000, break(3)); ac++)))

%o (Python)

%o from itertools import count, islice, combinations_with_replacement as cwr

%o def agen(): # generator of terms

%o after = {"1":"018", "4":"08", "8":"8"}

%o yield from (0, 1, 8)

%o for digits in count(2):

%o for first in "148":

%o for rest in cwr(after[first], digits-1):

%o yield int(first + "".join(rest))

%o print(list(islice(agen(), 50))) # _Michael S. Branicky_, Jul 07 2024

%Y Cf. A179239, A064692, A249572.

%K base,nonn

%O 1,3

%A _Charles L. Hohn_, Jul 05 2024