El título está compuesto por 'Índice de secuencia de dígitos no'.
Reto:
Dado un número entero n
que es >= 0
, genera el n
número 'th de la siguiente secuencia.
Aquí están los primeros 50 elementos, con su índice (indexado 0) encima:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
1 0 3 2 5 4 7 6 9 8 22 20 30 24 23 26 25 28 27 32 11 33 10 14 13 16 15 18 17 31 12 29 19 21 50 40 41 42 44 45 35 36 37 51 38 39 52 53 55 56 34
¿Cómo funciona esta secuencia?
El número en el índice n
debe ser el primero para que no tenga ningún dígito en común n
y no haya aparecido aún para índices anteriores. Entonces, cuando miramos una secuencia normal como esta de 0-60
:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Definimos los n
'th valores como este:
0
: El primer número (0
) contiene el mismo dígito, por lo que buscamos el siguiente (1
), que no contiene el mismo dígito. Asín=0
salidas1
.1
: El primer número (0
) no contiene el mismo dígito, por lo que sen=1
genera0
.2
: Ya hemos encontrado0
y1
, y el siguiente dígito (2
) contiene el mismo dígito, por lo que buscamos el siguiente (3
), que no contiene el mismo dígito. Asín=2
salidas3
.- ...
10
: Ya nos hemos encontrado0-9
, así que el siguiente en la línea es10
.10-19
contener el dígito correspondiente1
,20
contiene el dígito de juego0
,21
contiene el dígito de juego1
de nuevo,22
es válido, por lo quen=10
las salidas22
.- etc.
Reglas de desafío:
- Si su idioma está indexado en 1 (o lo elige), puede comenzar la secuencia en
3 2 5 4 7 ...
(omitiendo el1
atn=0
y el0
atn=1
). - El índice mínimo más grande que debe admitir es
25,000
. NOTA: La secuencia se detiene en el índice1,023,456,788
, porque el siguiente índice en línea contiene los 10 dígitos. - También puede generar / devolver una matriz / lista de toda la secuencia hasta el índice incluido,
n
si lo desea.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
Casos de prueba:
Esta secuencia realmente creó pares con respecto al índice y las salidas. Si las n
salidas de o
índice, las o
salidas de índice n
. Entonces puede ingresar a la izquierda o la derecha, y la salida será el otro lado:
0 <-> 1 (this test case is optional)
2 <-> 3
10 <-> 22
12 <-> 30
34 <-> 50
89 <-> 100
111 <-> 200
112 <-> 300
199 <-> 322
2231 <-> 4456
9605 <-> 11118
19235 <-> 46000
23451 <-> 60668
25000 <-> 13674
Aquí hay un pastebin de los primeros 25.001 casos de prueba si desea probar otros.