This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A374349 #40 Jul 22 2024 15:33:20 %S A374349 0,1,8,10,11,18,40,48,88,100,101,108,111,118,188,400,408,488,888,1000, %T A374349 1001,1008,1011,1018,1088,1111,1118,1188,1888,4000,4008,4088,4888, %U A374349 8888,10000,10001,10008,10011,10018,10088,10111,10118,10188,10888,11111,11118 %N A374349 Integers >=0 whose decimal digits are topologically distinct from those of any smaller number. %C A374349 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 A374349 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 A374349 0 is homologous to 1 torus, so a(1)=0. %e A374349 1 is homologous to 1 sphere, so a(2)=1. %e A374349 2 is homologous to 1 sphere, same as 1, so it is not in the sequence. %e A374349 4 is homologous to 1 torus, same as 0, so it is not in the sequence. %e A374349 8 is homologous to 1 double torus, so a(3)=8. %e A374349 10 is homologous to 1 sphere and 1 torus, so a(4)=10. %e A374349 11 is homologous to 2 spheres, so a(5)=11. %e A374349 14 is homologous to 1 sphere and 1 torus, same as 10, so it is not in the sequence. %e A374349 41 is homologous to 1 sphere and 1 torus, same as 10, so it is not in the sequence. %o A374349 (PARI) df(d, c)=(10^c-1)/9*d %o A374349 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 A374349 (Python) %o A374349 from itertools import count, islice, combinations_with_replacement as cwr %o A374349 def agen(): # generator of terms %o A374349 after = {"1":"018", "4":"08", "8":"8"} %o A374349 yield from (0, 1, 8) %o A374349 for digits in count(2): %o A374349 for first in "148": %o A374349 for rest in cwr(after[first], digits-1): %o A374349 yield int(first + "".join(rest)) %o A374349 print(list(islice(agen(), 50))) # _Michael S. Branicky_, Jul 07 2024 %Y A374349 Cf. A179239, A064692, A249572. %K A374349 base,nonn %O A374349 1,3 %A A374349 _Charles L. Hohn_, Jul 05 2024