El título está compuesto por 'Índice de secuencia de dígitos no'.
Reto:
Dado un número entero nque es >= 0, genera el nnú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 ndebe ser el primero para que no tenga ningún dígito en común ny 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=0salidas1.1: El primer número (0) no contiene el mismo dígito, por lo que sen=1genera0.2: Ya hemos encontrado0y1, 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=2salidas3.- ...
10: Ya nos hemos encontrado0-9, así que el siguiente en la línea es10.10-19contener el dígito correspondiente1,20contiene el dígito de juego0,21contiene el dígito de juego1de nuevo,22es válido, por lo quen=10las 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 el1atn=0y el0atn=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,
nsi 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 nsalidas de oíndice, las osalidas 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.