Dadas 2 entradas (m = identificación inicial mínima , n = número de identificadores ), genera una lista secuencial de identificadores, comenzando en> = m, compuesta por los dígitos 0-9 donde no hay 2 números contiguos iguales, por ejemplo, 1232 es ok, 1233 no lo es (contiene 2 '3 al lado del otro).
Ejemplo
para m = 985, n = 6, a continuación se muestran los identificadores que se generarían / omitirían
...
985 - ok, 1st
986 - ok, 2nd
987 - ok, 3rd
# skip 0988 (contains '88')
989 - ok, 4th
# Skip 099x (contains '99')
# Skip 100x (contains '00')
1010 - ok, 5th
# Skip 1011 (contains '11')
1012 - ok, 6th
...
Salida
Cada ID debe imprimirse en una nueva línea, como en la secuencia anterior:
985
986
987
989
1010
1012
Reglas
Reglas estándar de código de golf, el conteo de bytes más bajo gana
code-golf
subsequence
beirtipol
fuente
fuente

Respuestas:
Jalea , 6 bytes
Pruébalo en línea!
¿Cómo funciona?
DIẠµ # Y - Programa completo. Argumento: dos enteros, X e Y. µ #: devuelve los primeros enteros Y superiores o iguales a X que satisfacen: I - Los incrementos ... D - ... De sus dígitos de base 10 ... Ạ - ... Son todos distintos de 0. Y - Unir el resultado por nuevas líneas.fuente
Brachylog ,
1110 bytesLa entrada es una lista de dos números. Pruébalo en línea!
Explicación
El incorporado
ḅtoma una lista o cadena, como"1000220", y la divide en bloques de elementos adyacentes iguales, como["1","000","22","0"]. En este programa, le aplico el~operador, por lo que funciona a la inversa: toma una lista de cadenas, comprueba que cada cadena consta de repeticiones de un solo carácter y las cadenas vecinas tienen caracteres diferentes, y concatena la lista. El predicado≤enumera los números comenzando desde la primera entrada en orden creciente, y verifico una condición en ellos, imprimiendo los que lo satisfacen y deteniéndome cuando encuentro suficiente.fuente
05AB1E , 9 bytes
Pruébalo en línea!
Exlpacion
fuente
Java 8, 83 bytes
Explicación:
Pruébalo en línea.
fuente
PowerShell , 59 bytes
Pruébalo en línea!
Básicamente similar a las otras respuestas. Bucles siempre que nos queden números para imprimir (
for(;$n)), comprueba si tenemos una coincidencia de expresiones regulares contra un doble dígito y, de lo contrario, lo pone en la tubería y disminuye$n. Luego incrementamos$my repetimos nuevamente. Los elementos se recogen de la tubería y lo implícitoWrite-Outputnos da una salida separada de la nueva línea de forma gratuita.fuente
R ,
1119271 bytesPruébalo en línea!
Utiliza
greplpara buscar dígitos repetidos.fuente
Jalea , 9 bytes
Pruébalo en línea!
Si no es por la restricción de salida,
Yse puede eliminar.fuente
C, 73 bytes
Pruébalo en línea!
fuente
Perl 6 , 56 bytes
Intentalo
Expandido:
fuente
Retina , 34 bytes
Pruébalo en línea! Toma
nymcomo entrada en líneas separadas. Explicación:Apague la salida automática y elimine
ndel búfer de trabajo.Repite
nveces.Imprima el valor de
mal final del siguiente grupo en bucle.Bucle mientras hay dígitos contiguos.
Convierte a unario.
Cuente el número de cadenas vacías, que es uno más que el número de caracteres, sumando 1 y convirtiendo de nuevo a decimal. Esto termina el ciclo interno.
Después de imprimir
m, agregue 1 nuevamente de la misma manera. (La última línea no necesita unC`porque es el tipo de etapa predeterminado para la última línea). El bucle externo está implícitamente terminado.Tenga en cuenta que convertir a unario y volver a decimal es un poco lento; para 39 bytes, una versión que no realiza ninguna conversión:
Pruébalo en línea! Explicación:
$.(calcula la longitud del resto de la sustitución, convenientemente sin expandirla realmente; como la longitud de*_es implícitamente el valor coincidente y la longitud de_es, por supuesto, 1, esto solo incrementa el valor.fuente
Perl 5.10.0 +
-n,4039 bytesPruébalo en línea!
-1 byte gracias a Xcali
Entrada en dos líneas, primero n, luego m. Asegúrese de que NO haya nueva línea después de m:
fuente
Perl 5 ,
-ln33 bytesIngrese 2 líneas en STDIN, primero inicie la identificación y luego cuente
Pruébalo en línea!
fuente
$n.=<>funcionaba así, especialmente con el-=...$npuede ser0así que hacer ambas cosas juntas está malPython 2 ,
8073 bytes-7 bytes gracias al Sr. Xcoder
Pruébalo en línea!
fuente
Haskell , 70 bytes
-19 bytes gracias a nimi.
Pruébalo en línea!
17 bytes dedicados a la separación por nuevas líneas.
fuente
mapMyprint. Pruébalo en línea!Stax ,
98 bytes CP437Pruébalo en línea!
Sucede para coincidir con el algoritmo de @ Mr.Xcoder en su respuesta de Jelly.
-1 byte por comentario de @recursive.
Explicación
Utiliza el formato desempaquetado para explicar.
fuente
Haskell ,
949391 bytes-1 byte gracias a Laikoni
-2 bytes gracias a Zgarb
Pruébalo en línea!
Primero Haskell golf.
fuente
group(show a)puede sergroup$show a.(<2).lengthpuede sernull.tailPyth , 12 bytes
Pruébalo aquí
fuente
JavaScript (ES6), 50 bytes
Toma entrada en la sintaxis de curry
(m)(n).Pruébalo en línea!
fuente
C # (.NET Core), 91 bytes
Puerto de @Steadybox 'C respuesta.
Pruébalo en línea.
fuente
Perl 5 (
-nl), 42 bytesPruébalo en línea!
fuente
AWK , 90 bytes
Pruébalo en línea!
Esto es mucho más feo de lo que pensé que sería. Descubrí que
AWKsolo tiene sustitución de retroceso en sugensubfunción, lo que haría que su uso no fuera muy eficiente.Por lo tanto, este es un enfoque muy sencillo de incrementar un contador de ID, dividir el contador en cada carácter, recorrer los caracteres para ver si algún carácter es el mismo que el anterior. Si no se encuentran caracteres repetidos, imprima el contador de ID e incremente el número de ID impresos.
Intentaré abstenerme de hacer una declaración en la línea de "
AWKdebería tener la capacidad de hacer expresiones regulares más robustas", pero será difícil.fuente
Bash + GNU utilidades, 35
Pruébalo en línea .
fuente
Ruby , 47 bytes
Pruébalo en línea!
Si no le gustan las comillas, son 50 bytes
Pruébalo en línea!
fuente
Pip , 22 bytes
Pruébalo en línea!
Explicación
fuente