Pi adalah bilangan irasional , yang berarti bahwa representasi desimalnya tidak pernah berakhir atau terulang.
Pi terpotong menjadi 41 angka desimal (40 tempat) 3.1415926535897932384626433832795028841971.
Jika kita mengabaikan titik desimal dan mendaftar angka sebagai urutan bilangan bulat positif, menghindari duplikat , kita dapatkan 3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 950 28 841 971( OEIS A064809 ).
(Perhatikan yang 15muncul dalam urutan bukan 1 5karena 1sudah terjadi.
Juga perhatikan yang 0tidak terjadi karena tidak positif; 950berisi nol pertama.)
Untuk membangun angka pirasional pertama, kami menggunakan urutan ini untuk mengindeks ke dalam digit Pi (digit pertama adalah 3, angka kedua 1, dll.).
Jadi digit pertama dari angka pirrasional pertama adalah digit ke-3 Pi,
digit kedua adalah digit pertama Pi,
digit ketiga adalah digit ke-4 Pi, digit
keempat adalah digit ke - 15 Pi,
dan seterusnya.
Titik desimal ditambahkan setelah digit pertama untuk meniru Pi.
Dengan demikian angka pirrasional pertama hingga 41 digit adalah 4.3195195867462520687356193644029372991880.
(Perhatikan bahwa untuk digit ke-30 saya harus terus ke digit ke-974 dari Pi.)
Untuk membangun bilangan pirasional kedua, prosesnya diulangi menggunakan bilangan pirasional pertama alih-alih Pi. (Pi itu sendiri dapat disebut angka pirerasional nol). Jadi urutan baru adalah 4 3 1 9 5 19 58 ...dan nomor piirasional pertama diindeks untuk menghasilkan yang kedua, yang dimulai 9.14858....
Bilangan pirasional lebih lanjut dibuat dengan cara yang sama, masing-masing dihasilkan dari yang sebelumnya.
Tantangan
Tugas Anda adalah menulis program sesingkat mungkin yang menggunakan dua bilangan bulat, Ndan D, dan menampilkan Nbilangan pirasional ke Dangka desimal.
Dselalu positif tetapi Ntidak negatif, dan Dangka-angka Pi harus dikeluarkan ketika N0.
Ketika D1 adalah tidak masalah apakah titik desimal ada atau tidak.
Input harus berasal dari stdin atau baris perintah dan output harus pergi ke stdout (atau alternatif terdekat bahasa Anda).
Program Anda harus bekerja untuk semua nilai input dari Ndan di Dbawah 2 16 , tetapi tidak harus tepat waktu atau efisien.
Kode terpendek dalam byte menang.
(Perhatikan bahwa angka-angka pembajakan keluar di pangkalan lain, tetapi segala sesuatu dalam tantangan ini dilakukan di pangkalan 10.)
N=1, D=13393misalnya, Anda akan perlu digit 31 sepersejuta PI