La constante de Champernowne es el número irracional 0.1234567891011 ... que se extiende hasta el infinito.
Hemos hecho una pregunta al respecto antes. Pero esta pregunta es sobre su recíproco, conocido como la constante Champernowne inversa. Esto es aproximadamente 8.10000007.
Dada una cadena de entre uno y tres dígitos (cada cadena de 3 dígitos aparece dentro de los primeros 10,000 lugares decimales) inclusive, proporcione el número de lugares decimales en la porción decimal de la constante de Champernowne inversa que preceden a la primera aparición de esa cadena.
Las construcciones que realizan esto directamente o generan aproximaciones de cualquiera de estas constantes están prohibidas, pero las construcciones para la aritmética de precisión arbitraria aún están permitidas.
Este es el código de golf, por lo que el programa más corto, en bytes, gana.
Casos de prueba:
1 0
2 52
3 13
4 29
5 36
6 7
7 8
8 27
9 23
10 0
100 0
998 187
999 67
01 321
001 689
010 418
Respuestas:
MATL , 37 bytes
¡Gracias a @AndrasDeak por su ayuda con la
vpa
función de Octsympy !EDITAR (11 de junio de 2016): debido a cambios en el idioma, reemplace
0
porJ
en el código. El siguiente enlace incluye esa modificaciónPruébalo en línea!
Lleva un tiempo en el compilador en línea (menos de 1 minuto).
fuente
Ruby,
6967 bytesPuntuación: 55 bytes de código fuente + 12 para la
-rbigdecimal
bandera.Muy claro. La única parte extraña es que
to_s
la#{}
construcción llama implícitamente a losBigDecimal
retornosentonces es necesario restar 3 para obtener el índice correcto.
fuente
Python 2, 69 bytes
fuente