Diadaptasi dari teka-teki FiveThirtyEight ini .
Latar Belakang
Periksa urutan tak terbatas berikut:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
Katakanlah urutannya adalah 1-diindeks. The iJumlah th di urutan menentukan berapa banyak 3s ada sebelum ith 2dan mengikuti setiap sebelumnya 2s. Jadi sejak urutan dimulai dengan 3urutan harus dimulai 3 3 3 2dan karena ada tiga 3s di awal urutan, maka urutan 3 3 3 2harus diulang tiga kali. Setelah itu Anda mencapai 3 3 2karena angka keempat dalam urutan tersebut 2.
Teka-teki FiveThirtyEight meminta batas rasio tiga hingga dua (yang saya tidak akan rusak di sini) tetapi Anda juga dapat bertanya apa rasio kumulatif setelah indeks i. Misalnya rasio at i=4is 3/1 = 3dan at i=15it 11/4 = 2.75.
Mari kita menjadi umum
Angka yang diberikan ndan kkita dapat membuat urutan yang sama yang dimulai dengan ndan seperti urutan asli yang dijelaskan angka di indeks imenentukan berapa banyak yang nmuncul sebelum ith kdan mengikuti yang sebelumnya k.
Contoh:
n=2, k=5 memberi urutan 2 2 5 2 2 5 2 2 2 2 2 5 2 2 5 ...
n=3, k=0 memberi 3 3 3 0 3 3 3 0 3 3 3 0 0 3 3 3 0 ...
n=1, k=3 memberi 1 3 1 1 1 3 1 3 1 3 1 3 1 1 1 3 1 ...
Tantangan
Tulis fungsi / program dan dengan itu lakukan hal berikut. Ambil sebagai masukan:
- bilangan bulat positif
n - bilangan bulat tidak negatif
k ≠ n - bilangan bulat positif
i > n
Dua input pertama ndan ktentukan urutan seperti dijelaskan di atas dan imerupakan indeks. Saya menggunakan pengindeksan 1 dalam contoh, tetapi Anda memiliki kebebasan untuk menggunakan pengindeksan 0 atau 1. Jika 0-diindeks maka batasan pada iadalah i ≥ n.
Dengan tiga angka yang dihasilkan, rasio ns ke ks dalam urutan hingga dan termasuk angka pada indeks i. Format output dapat berupa nilai desimal dengan setidaknya 5 digit presisi atau nilai yang tepat sebagai rasio seperti 3524/837atau 3524:837.
Dalam bentuk desimal, digit terakhir dapat dibulatkan sesuka Anda. Nol trailing dan spasi putih diizinkan.
Dalam salah satu bentuk string, kedua angka harus dinormalisasi sehingga keduanya merupakan koprime. Misalnya jika rasionya 22/4, 11/2dan 11:2dapat diterima tetapi 22/4tidak.
Contohnya
n k i output
2 4 15 2.75 or 11/4
6 0 666 5.1101 or 557:109
50 89 64 63 or 63:1
3 2 1000 2.7453 or 733/267
9 12 345 9.4545 or 104/11
Ini adalah kode golf per bahasa, jadi kode terpendek dalam setiap bahasa adalah pemenangnya.
/atau :hanya menambahkan komplikasi yang tidak perlu pada tantangan.