Constant Champernowne adalah bilangan irasional 0.1234567891011 ... memperpanjang ad infinum.
Kami telah melakukan pertanyaan tentang itu sebelumnya. Tetapi pertanyaan ini adalah tentang kebalikannya, yang dikenal sebagai Invers Champernowne Constant. Ini sekitar 8.10000007.
Diberikan string antara satu dan tiga digit (setiap string 3 digit muncul dalam 10.000 tempat desimal pertama) inklusif, berikan jumlah tempat desimal di bagian desimal dari Inverse Champernowne Constant yang mendahului penampilan pertama dari string tersebut.
Builtin yang melakukan ini secara langsung atau menghasilkan perkiraan salah satu dari konstanta ini dilarang, tetapi builtin untuk aritmatika presisi sewenang-wenang masih diizinkan.
Ini adalah kode golf, jadi program terpendek, dalam byte, menang.
Kasus uji:
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
Jawaban:
MATL , 37 byte
Terima kasih kepada @AndrasDeak untuk bantuannya dengan
vpa
fungsi Octsympy !EDIT (11 Juni 2016): karena perubahan bahasa, ganti
0
denganJ
dalam kode. Tautan di bawah ini termasuk modifikasi ituCobalah online!
Butuh beberapa saat di kompiler online (kurang dari 1 menit).
sumber
Ruby,
6967 byteNilai: 55 byte kode sumber + 12 untuk
-rbigdecimal
bendera.Cukup mudah. Hanya bagian yang aneh adalah bahwa
to_s
secara implisit dipanggil oleh#{}
konstruksiBigDecimal
pengembalianjadi perlu untuk mengurangi 3 untuk mendapatkan indeks yang benar.
sumber
Python 2, 69 byte
sumber