cp's OEIS Frontend

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.

A367810 Lexicographically earliest sequence of distinct positive terms not ending in 0 such that the Levenshtein distance (Ld) between a(n) and a(n+1) is equal to the last digit of a(n).

This page as a plain text file.
%I A367810 #16 Dec 20 2023 08:04:36
%S A367810 1,2,11,12,3,101,102,13,201,21,22,4,1001,1002,103,5,10001,10002,1003,
%T A367810 14,2001,2002,203,6,100001,100002,10003,104,2211,211,111,112,15,20001,
%U A367810 20002,202,23,105,22211,2221,221,121,122,16,200001,200002,20003,204,1111,1011,1012,106,222211,22221,2222,212,17
%N A367810 Lexicographically earliest sequence of distinct positive terms not ending in 0 such that the Levenshtein distance (Ld) between a(n) and a(n+1) is equal to the last digit of a(n).
%H A367810 Éric Angelini, <a href="https://cinquantesignes.blogspot.com/2023/12/more-levenshtein-distances.html">More Levenshtein distances</a>, Personal blog, December 2023.
%e A367810 a(1) =  1 and a(2) =   2 are separated by an Ld of 1, and 1 is the last digit of a(1)
%e A367810 a(2) =  2 and a(3) =  11 are separated by an Ld of 2, and 2 is the last digit of a(2)
%e A367810 a(3) = 11 and a(4) =  12 are separated by an Ld of 1, and 1 is the last digit of a(3)
%e A367810 a(4) = 12 and a(5) =   3 are separated by an Ld of 2, and 2 is the last digit of a(4)
%e A367810 a(5) =  3 and a(6) = 101 are separated by an Ld of 3, and 3 is the last digit of a(5), etc.
%t A367810 a[1]=1;a[n_]:=a[n]=(k=1; While[MemberQ[Array[a,n-1],k] ||Mod[k,10]==0|| EditDistance[ToString@a[n-1],ToString@k]!= Mod[a[n-1],10],k++];k);Array[a,40]
%o A367810 (Python)
%o A367810 from itertools import islice
%o A367810 from Levenshtein import distance as Ld
%o A367810 def agen(): # generator of terms
%o A367810     an, aset, mink = 1, {1}, 2
%o A367810     while True:
%o A367810         yield an
%o A367810         s, k = str(an), mink
%o A367810         target = int(s[-1])
%o A367810         while k%10 == 0 or k in aset or Ld(s, str(k)) != target: k += 1
%o A367810         an = k
%o A367810         aset.add(k)
%o A367810         while mink in aset or mink%10 == 0: mink += 1
%o A367810 print(list(islice(agen(), 57))) # _Michael S. Branicky_, Dec 01 2023
%Y A367810 Cf. A367638.
%K A367810 base,nonn
%O A367810 1,2
%A A367810 _Eric Angelini_ and _Giorgos Kalogeropoulos_, Dec 01 2023