Digamos que una subcadena es cualquier sección continua de una cadena original. Por ejemplo, cat
es una subcadena de concatenate
. Diremos que una subcadena adecuada es una subcadena que no es igual a la cadena original. Por ejemplo, concatenate
es una subcadena concatenate
pero no una subcadena adecuada. (las cadenas de caracteres individuales no tienen subcadenas adecuadas)
Ahora definiremos una secuencia usando estos términos. El n º término en esta secuencia será el número más pequeño de tal manera que hay una subcadena adecuada de su representación binaria que no es una subcadena de cualquier término anterior en la secuencia. El primer término es 10
.
Como ejercicio vamos a generar los primeros 5 términos. Trabajaré en binario para facilitar las cosas.
El primer término es 10
. Dado que 11
el siguiente número más pequeño tiene solo una subcadena adecuada, 1
que también es una subcadena 10
, 11
no está en la secuencia. 100
sin embargo, contiene la subcadena adecuada 00
que no es una subcadena de 10
lo que 100
es nuestro próximo término. El siguiente es el 101
que contiene la subcadena adecuada única que lo 01
agrega a la secuencia, luego 110
contiene la subcadena adecuada 11
que es nueva y la agrega a la secuencia.
Ahora tenemos
10, 100, 101, 110
111
es el siguiente, pero contiene solo las subcadenas 1
y 11
no es un término. 1000
sin embargo contiene 000
agregarlo a la secuencia.
Aquí están los primeros dos términos en decimal
2, 4, 5, 6, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 54, 56, 58
Tarea
Ya sea
Tome n como entrada y generar el n º término en esta secuencia (ya sea 0 o 1 indexada)
Salida continua de términos de la secuencia
Este es el código de respuestas de golf se puntúan en bytes con menos bytes que son mejores.
n
)?
a(36)
es 47 (1 indexado).