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.

A295638 Take the sequence of nonnegative integers whose decimal digits are not in strictly increasing order. Partition the sequence into subsequences whose elements are consecutive integers. Then a(n) is the number of elements in the n-th partition.

Original entry on oeis.org

2, 3, 4, 5, 6, 7, 8, 9, 33, 4, 5, 6, 7, 8, 9, 44, 5, 6, 7, 8, 9, 55, 6, 7, 8, 9, 66, 7, 8, 9, 77, 8, 9, 88, 9, 99, 444, 5, 6, 7, 8, 9, 55, 6, 7, 8, 9, 66, 7, 8, 9, 77, 8, 9, 88, 9, 99, 555, 6, 7, 8, 9, 66, 7, 8, 9, 77, 8, 9, 88, 9, 99, 666, 7, 8
Offset: 1

Views

Author

Gunnar Lee Johnson, Nov 24 2017

Keywords

Comments

Only defined as an integer for a(1) through a(255), as a(256) references the infinite partition (123456790, 123456791, ..., 999999999, 1000000000, 1000000001, ...). No integer greater than 123456789 has a strictly increasing sequence of digits (itself being the only case for 9 digits, and by the pigeonhole principle, a >9-digit number must have a digit repeated and is thus not strictly increasing).

Examples

			For a(1)=2 through a(8)=9, these correspond to the consecutive subsequences (10, 11), (20, 21, 22), ..., (80, 81, 82, ..., 88). The jumps at e.g. a(9)=33 or a(37)=444 correspond to (90, 91, ..., 122) and (790, 791, ..., 1233), where 89 and 123, and 789 and 1234, are the values partitioning the subsequences.
		

Crossrefs

The nonnegative integers minus A009993 is the sequence that is partitioned.

Programs

  • PARI
    is(n) = my(d=digits(n)); d != vecsort(d,,8);
    lista(nn) = {my(w = select(n->is(n), vector(nn, k, k))); my(dw = vector(#w-1, k, w[k+1] - w[k])); my(k = 1); for (n=1, #dw, if (dw[n] == 1, k++, print1(k, ", "); k = 1););} \\ Michel Marcus, Jan 08 2018
  • Python
    def a(n):
        (x,i,count,switch) = (0,0,1,True)
        while True:
            if switch == (list(sorted(set(str(i)))) == list(str(i))):
                count += 1
            else:
                if not switch: x += 1
                if x == n: return count
                (count, switch) = (1, not switch)
            i += 1