Latar Belakang:
Pi ( π) adalah bilangan transendental , dan oleh karena itu ia memiliki representasi desimal yang tidak berakhir. Serupa, representasi tidak berakhir jika ditulis dalam basis integer lainnya. Tetapi bagaimana jika kita menulisnya di markas π?
Digit dalam desimal mewakili kekuatan 10, jadi:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
Jadi pada dasarnya π, angka akan mewakili kekuatan π:
π = 10 = (1 * π^1) + (0 * π^0)
Di basis baru ini, bilangan bulat sekarang memiliki representasi non-terminating. Jadi 10 dalam desimal sekarang menjadi sebagai berikut:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
Perhatikan bahwa dalam basis πangka yang digunakan adalah 0,1,2,3 karena ini adalah angka yang kurang dari π.
Tantangan:
Diberikan bilangan bulat non-negatif x, baik:
Output (tanpa menghentikan) perwakilannya di basis
π. Jika angka memiliki representasi terbatas (0, 1, 2, 3), maka program dapat berhenti alih-alih mencetak nol tanpa batas.Ambil bilangan bulat besar yang sewenang-wenang
n, dan hasilkanndigit pertamaxbasisπ.
Aturan:
- Karena angka memiliki beberapa kemungkinan representasi, Anda harus menampilkan yang tampak terbesar (dinormalisasi). Sama seperti
1.0 = 0.9999…dalam desimal, masalah ini juga ada di pangkalan ini. Pada dasarnyaπ, seseorang masih1.0, tetapi bisa juga ditulis sebagai0.3011…, misalnya. Demikian pula, sepuluh adalah100.01022…, tetapi juga dapat ditulis sebagai30.121…atau23.202…. - Ini adalah kode-golf, byte paling sedikit menang. Program atau fungsi.
- Tidak ada bawaan ( Saya melihat Anda , Mathematica )
Hasil:
0 = 0
1 = 1
2 = 2
3 = 3
4 = 10.220122021121110301000010110010010230011111021101…
5 = 11.220122021121110301000010110010010230011111021101…
6 = 12.220122021121110301000010110010010230011111021101…
7 = 20.202112002100000030020121222100030110023011000212…
8 = 21.202112002100000030020121222100030110023011000212…
9 = 22.202112002100000030020121222100030110023011000212…
10 = 100.01022122221121122001111210201201022120211001112…
42 = 1101.0102020121020101001210220211111200202102010100…
1337 = 1102021.0222210102022212121030030010230102200221212…
9999 = 100120030.02001010222211020202010210021200221221010…
10.000 digit pertama dari sepuluh di basis Pi
Verifikasi:
Anda dapat memverifikasi output apa pun yang Anda inginkan menggunakan kode Mathematica di sini . Parameter pertama adalah x, yang ketiga adalah n. Jika waktu habis, pilih yang kecil ndan jalankan. Kemudian klik "Open in Code" untuk membuka lembar kerja Mathematica baru dengan program. Tidak ada batasan waktu di sana.
Ubah output yang dihasilkan ke angka di sini .
Terkait:
n, saya kira Pi harus memiliki setidaknya npresisi digit.