Die Champernowne-Konstante ist die irrationale Zahl 0.1234567891011 ... die sich ad infinum erstreckt.
Wir haben schon einmal eine Frage dazu gestellt. Bei dieser Frage handelt es sich jedoch um eine wechselseitige Frage, die als Inverse Champernowne-Konstante bekannt ist. Dies ist ungefähr 8.10000007.
Geben Sie bei einer Zeichenfolge zwischen einer und drei Stellen (jede dreistellige Zeichenfolge erscheint innerhalb der ersten 10.000 Dezimalstellen) einschließlich die Anzahl der Dezimalstellen im Dezimalteil der inversen Champernowne-Konstante an, die dem ersten Auftreten dieser Zeichenfolge vorausgehen.
Builtins, die dies direkt ausführen oder Annäherungen an eine dieser Konstanten generieren, sind verboten, aber Builtins für Arithmetik mit beliebiger Genauigkeit sind weiterhin zulässig.
Dies ist Code Golf, also gewinnt das kürzeste Programm in Bytes.
Testfälle:
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
Antworten:
MATL , 37 Bytes
Vielen Dank an @AndrasDeak für seine Hilfe bei der
vpa
Funktion von Octsympy !BEARBEITEN (11. Juni 2016): Aufgrund von Änderungen in der Sprache im Code
0
durch ersetzenJ
. Der folgende Link enthält diese ÄnderungProbieren Sie es online aus!
Im Online-Compiler dauert es eine Weile (weniger als 1 Minute).
quelle
Ruby,
6967 BytesPunktzahl: 55 Quellcode-Bytes + 12 für das
-rbigdecimal
Flag.Ziemlich einfach. Einziger seltsamer Teil ist, dass das
to_s
implizit von der#{}
Konstruktion aufBigDecimal
Renditen aufgerufen wirdDaher muss 3 subtrahiert werden, um den richtigen Index zu erhalten.
quelle
Python 2, 69 Bytes
quelle