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.

A108116 Base 10 weak Skolem-Langford numbers.

Original entry on oeis.org

2002, 131003, 231213, 300131, 312132, 420024, 12132003, 14130043, 15120025, 23121300, 23421314, 25121005, 25320035, 30023121, 31213200, 31413004, 34003141, 40031413, 41312432, 45001415, 45121425, 45300435, 50012152, 51410054, 52002151, 52412154, 53002352, 53400354, 61310036
Offset: 1

Views

Author

Eric Angelini, Jun 26 2005, Aug 10 2007

Keywords

Comments

Self-describing numbers: between two digits "d" there are d digits.
a(n) has either 0 or 2 instances of any digit, hence even number of digits.
Largest element is a(20120) = 978416154798652002.
Named after the Norwegian mathematician Thoralf Albert Skolem (1887-1963) and the British chemist and mathematics teacher Charles Dudley Langford (1905-1969). - Amiram Eldar, Jun 17 2021

Examples

			In "2002" there are 2 digits between the two 2's and 0 digits between the two 0's.
In "131003" there is 1 digit between the two 1's, 3 digits between the two 3's and 0 digit between the two 0's.
		

References

  • E. Angelini, "Jeux de suites", in Dossier Pour La Science, pp. 32-35, Volume 59 (Jeux math'), April/June 2008, Paris.

Crossrefs

Base 10 strong Skolem-Langford numbers are in A132291.
Base 10 weaker Skolem-Langford numbers are in A357826.

Programs

  • Python
    def SL(d, s):
      for i1 in range(int(d[0]=="0"), len(s)-int(d[0])-1):
        i2 = i1 + int(d[0]) + 1
        if not (s[i1] or s[i2]):
          s[i1] = s[i2] = d[0]
          r = d[1:]
          if r: yield from SL(r, s)
          else: yield int("".join(s))
          s[i1] = s[i2] = 0
    from itertools import chain, combinations as C
    def A108116gen():
      for numd in range(1, 11):
        dset, s = "0123456789", [0 for _ in range(2*numd)]
        for an in sorted(
          chain.from_iterable(SL("".join(c), s) for c in C(dset, numd))):
          yield an
    for n, an in enumerate(A108116gen(), start=1):
      print(n, an) # Michael S. Branicky, Dec 14 2020

Extensions

Edited by N. J. A. Sloane, Nov 18 2007