A constante de Champernowne é o número irracional 0,1234567891011 ... estendendo-se ad infinum.
Já fizemos uma pergunta sobre isso antes. Mas essa pergunta é sobre sua recíproca, conhecida como Inversa Inversa de Champernowne. Isso é aproximadamente 8,10000007.
Dada uma cadeia de caracteres entre um e três dígitos (cada cadeia de três dígitos aparece nas primeiras 10.000 casas decimais) inclusive, forneça o número de casas decimais na parte decimal da Inversa Champernowne Constante que precede a primeira aparição dessa cadeia.
Construções internas que realizam isso diretamente ou geram aproximações de qualquer uma dessas constantes são proibidas, mas construções internas para aritmética de precisão arbitrária ainda são permitidas.
Isso é código de golfe, então o programa mais curto, em bytes, vence.
Casos de teste:
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
Respostas:
MATL , 37 bytes
Obrigado a @AndrasDeak por sua ajuda com a
vpa
função de Octsympy !EDIT (11 de junho de 2016): devido a alterações no idioma, substitua
0
porJ
no código. O link abaixo inclui essa modificaçãoExperimente online!
Demora um pouco no compilador online (menos de 1 minuto).
fonte
Ruby,
6967 bytesPontuação: 55 bytes do código fonte + 12 para o
-rbigdecimal
sinalizador.Bem direto. A única parte estranha é que o
to_s
implicitamente chamado pela#{}
construção deBigDecimal
retornosportanto, é necessário subtrair 3 para obter o índice correto.
fonte
Python 2, 69 bytes
fonte