(Terinspirasi oleh respons Helka terhadap pemasangan acak tag "catur" dan "Fibonacci" dalam obrolan)
Fibonacci
The angka Fibonacci adalah salah satu urutan lebih terkenal dalam matematika, di mana setiap nomor terdiri dengan menambahkan dua angka sebelumnya bersama-sama. Di bawah ini adalah definisi dari urutan tanpa indeks:
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
Ini menghasilkan urutan 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
( tautan OEIS ). Dalam tantangan ini, kami hanya akan berfokus pada nilai-nilai yang benar-benar positif (jadi 1, 1, 2, 3, ...
), dan Anda dapat memilih pengindeksan-nol atau pengindeksan-tunggal, tetapi harap sebutkan yang mana dalam kiriman Anda.
Angka-angka Fibonacci dapat digunakan untuk ubin bidang, dengan menggunakan kotak yang berturut-turut f(n)
dalam ukuran, dan meluruskan ujungnya bersama-sama. Ubin dilakukan secara berlawanan arah jarum jam, dengan menempatkan kotak dalam pola "kanan-kiri-bawah" dari kotak saat ini. Contoh ubin parsial ini untuk f(8)=21
, dengan kuadrat awal disorot dengan warna biru, adalah sebagai berikut:
Anda dapat melihat f(1)=1
sebagai kotak awal (disorot dengan warna biru), f(2)=1
kotak ditempatkan di sebelah kanannya , f(3)=2
kotak ditempatkan di atas sana, f(4)=3
kotak ditempatkan di kiri dan seterusnya. Kotak berikutnya adalah f(9)=21+13=34
dan akan ditempatkan di bagian bawah. Ini adalah metode ubin parsial yang akan kami gunakan dalam tantangan ini.
Para ratu
Dalam permainan catur , bagian yang paling kuat adalah ratu karena ia dapat memindahkan sejumlah ruang secara horizontal, vertikal, atau diagonal. Dalam diagram papan di bawah ini, kotak dengan lingkaran hitam menunjukkan tempat ratu dapat bergerak:
Kami akan mendefinisikan istilah cakupan sebagai
Persentase kuadrat yang dapat dipindahkan oleh ratu dibandingkan dengan jumlah kuadrat, mengingat posisi khusus ratu di papan kosong, dan termasuk posisi awal ratu sendiri.
Sebagai contoh bergerak di atas, cakupan ratu adalah 28/64 = 43.75%
. Jika ratu berada di h8
alun - alun kanan atas , cakupannya akan 22/64 = 34.375%
. Jika sang ratu ada di dalam e7
, cakupan akan 24/64 = 37.5%
.
Tantangan
Kami akan menggunakan ubin Fibonacci yang ditunjukkan di atas sebagai papan catur kami untuk tantangan ini. Anda akan diberi dua bilangan bulat positif sebagai input, n
dan x
:
- Ini
n
mewakili seberapa besar ubin itu. Contoh ubin di atas, dengan21
kotak di sebelah kiri, adalah papan ukurann = 8
sejakf(8) = 21
(ketika nol-diindeks). - Yang
x
mewakili kuadrat Fibonacci yang digunakan untuk penempatan ratu, untuk menghitung cakupan. Ratu ditempatkan satu per satu pada setiap kotak di kotak persegi Fibonacci tertentu, dan cakupan total adalah penjumlahan dari cakupan individu (unik).
Sebagai contoh, berikut adalah gambar dari n = 8
(ubin yang sama seperti di atas) dan x = 4
(sesuai dengan f(4) = 3
kotak, biru yang diarsir). Dengan menempatkan seorang ratu satu per satu ke masing-masing sembilan kotak biru itu, para ratu dapat (digabungkan) menutupi setiap kotak yang berwarna oranye. Karenanya, cakupan total dalam contoh ini 309/714 = 43.28%
.
Jelas sekali, kapan saja n = x
, cakupannya akan menjadi 100%
(misalnya, dengan n=8
dan x=8
, Anda dapat melihat bahwa setiap kotak di seluruh papan akan dibahas setidaknya satu kali). Sebaliknya, dengan cakupan yang cukup besar n
dan x=1
atau x=2
, cakupan akan mendekati (tetapi tidak pernah mencapai) 0%
(misalnya, dengan n=8
dan x=1
, cakupannya sangat kecil 88/714 = 12.32%
).
Dengan dua nomor input seperti itu, Anda harus menampilkan persentase cakupan, akurat ke dua tempat desimal. Silakan tentukan bagaimana kode Anda menangani pembulatan.
Aturan
- Input dan output dapat diberikan dalam format apa pun yang mudah , tetapi harus akurat untuk dua tempat desimal. Silakan tentukan bagaimana kode Anda menangani pembulatan.
- Asumsikan tidak ada bagian lain di papan tulis atau mengganggu gerakan.
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Contohnya
n = 8, x = 4
43.28
n = 8, x = 8
100 or 100.00
n = 8, x = 1
12.32
n = 4, x = 1
66.67
n = 4, x = 2
60 or 60.00
n = 5, x = 3
75 or 75.00
n = 5, x = 1
47.5 or 47.50