Digamos que una subcadena es cualquier sección continua de una cadena original. Por ejemplo, cates una subcadena de concatenate. Diremos que una subcadena adecuada es una subcadena que no es igual a la cadena original. Por ejemplo, concatenatees una subcadena concatenatepero 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 11el siguiente número más pequeño tiene solo una subcadena adecuada, 1que también es una subcadena 10, 11no está en la secuencia. 100sin embargo, contiene la subcadena adecuada 00que no es una subcadena de 10lo que 100es nuestro próximo término. El siguiente es el 101que contiene la subcadena adecuada única que lo 01agrega a la secuencia, luego 110contiene la subcadena adecuada 11que es nueva y la agrega a la secuencia.
Ahora tenemos
10, 100, 101, 110
111es el siguiente, pero contiene solo las subcadenas 1y 11no es un término. 1000sin embargo contiene 000agregarlo 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).Respuestas:
Python 3 ,
88807875 bytes-6 bytes gracias a Wheat Wizard
-2 bytes gracias a RootTwo
-3 bytes gracias a notjagan
Pruébalo en línea!
fuente
bin(n)[2:]conf"{n:b}".Jalea , 22 bytes
Pruébalo en línea!
fuente
Mathematica,
116110 bytesProduce infinitamente términos de la secuencia.
Explicación
xes la lista de términos de la secuencia hasta ahora.fes unFunctionque toma un número entero y devuelve todaSubsequencessu2representación base (incluida la lista vacía{}y la lista completa deIntegerDigitssí mismo).Evaluar el
...valor denfrom2a∞.Si
...es asíFalse, entonces el segundo argumento paraAnd(&&) nunca se evalúa. Si...es asíTrue, luegoEcho@nimprime y devuelven, que luegoAppendTola listax.Queremos verificar que alguna subcadena adecuada
nno sea una subcadena de ningún término anterior en la secuencia.Most@f@nes la lista de subcadenas adecuadas den, luego verificamos si hay alguna subcadenas_que sea unaMemberQde esa lista de tal manera que la listaf/@xde listas de subcadenas de términos anteriores de la secuencia seaFreeQdesnivel2.fuente
Mathematica,
10994 bytesSalida continua de términos de la secuencia
Gracias especiales a @ngenisis para -15 bytes
Mathematica, 123 bytes
Tome n como entrada y genere el enésimo término en esta secuencia (1 indexado)
entrada
salida
fuente
15bytes que pueden ir:SubsetQes más corto y equivalente aContainsAll, puede usar enAndlugar deIf,Uniones innecesario, yDocasi siempre es más corto queFor:s={};Do[!SubsetQ[s,(t=Subsequences@IntegerDigits[i,2])[[2;;-2]]]&&(s=s~Join~t;Echo@i),{i,∞}]3más bytes usandoMost:s={};Do[!SubsetQ[s,Most[t=Subsequences@IntegerDigits[i,2]]]&&(s=s~Join~t;Echo@i),{i,2,∞}]Pyth , 20 bytes
Esto imprime la secuencia infinitamente. Solo se puede usar fuera de línea como consecuencia.
Explicación (El espacio es una nueva línea):
fuente
Pyth , 20 bytes
Pruébalo en línea!
fuente
Haskell
172 bytesPruébalo en línea.
Explicación
El código genera la secuencia continuamente.
bdevuelve la representación binaria de anIntcomo aStringsdevuelve todas las subcadenas de una cadenapdevuelve todas las subcadenas adecuadas de una cadenanes una función que se aplica de forma iterativa y devuelve una tupla que contiene:scanlse usa para llamarnuna y otra vez y su salida se filtra para contener solo elementos mayores que 1Aquí hay una versión un poco más legible, antes de jugar al golf:
fuente
JavaScript, 57 bytes
Mostrar fragmento de código
Vamos a escribir el número dado n en forma binaria, entonces:
10, n debe en la secuencia:1, no se debe ver la cadena binaria restante, ya que n es el número más pequeño que puede contener dicha cadena11:1, la cadena binaria restante (vamos a donarlo como1xdebe verse desde:1xestá en la secuencia, o1x0está en la secuencia, ya que contiene una subcadena única1xConclusión:
la forma binaria del número comienza con
10o termina con1seguido de un número impar de0. O describa en regex: x match/^10|10(00)*$/.fuente