(lấy cảm hứng từ phản ứng của Helka đối với việc ghép các thẻ "cờ" và "Fibonacci" ngẫu nhiên của tôi trong trò chuyện)
Xơ
Các số Fibonacci là một trong những chuỗi được biết đến nhiều hơn trong toán học, trong đó mỗi số được tạo bằng cách cộng hai số trước đó lại với nhau. Dưới đây là định nghĩa của chuỗi không có chỉ mục:
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
Điều này dẫn đến trình tự 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
( liên kết OEIS ). Trong thử thách này, chúng tôi sẽ chỉ tập trung vào các giá trị cực kỳ tích cực (vì vậy 1, 1, 2, 3, ...
) và bạn có thể chọn lập chỉ mục bằng 0 hoặc lập chỉ mục một, nhưng vui lòng nêu rõ trong bài gửi của bạn.
Các số Fibonacci có thể được sử dụng để ốp lát mặt phẳng, bằng cách sử dụng các hình vuông có f(n)
kích thước kế tiếp nhau và sắp xếp các cạnh của chúng với nhau. Việc ốp lát được thực hiện theo kiểu ngược chiều kim đồng hồ, bằng cách đặt các ô vuông theo mẫu "phải lên trên trái" từ hình vuông hiện tại. Một ví dụ về ốp lát một phần này f(8)=21
, với hình vuông bắt đầu được tô màu xanh lam, như sau:
Bạn có thể thấy f(1)=1
hình vuông bắt đầu (được tô màu xanh lam), f(2)=1
hình vuông được đặt bên phải của nó, f(3)=2
hình vuông được đặt lên từ đó, f(4)=3
hình vuông được đặt bên trái và cứ thế. Hình vuông tiếp theo sẽ f(9)=21+13=34
và sẽ được đặt xuống dưới cùng. Đây là phương pháp ốp lát một phần chúng ta sẽ sử dụng trong thử thách này.
Nữ hoàng
Trong trò chơi cờ vua , quân cờ mạnh nhất là nữ hoàng vì nó có thể di chuyển bất kỳ số lượng không gian theo chiều ngang, chiều dọc hoặc đường chéo. Trong sơ đồ bảng dưới đây, các ô vuông có hình tròn màu đen hiển thị nơi nữ hoàng có thể di chuyển:
Chúng tôi sẽ xác định phạm vi bảo hiểm là
Tỷ lệ phần trăm hình vuông mà nữ hoàng có thể di chuyển so với tổng số hình vuông, được đặt vị trí cụ thể của nữ hoàng trên một bảng trống, và bao gồm cả vị trí bắt đầu của nữ hoàng.
Đối với ví dụ di chuyển ở trên, phạm vi bảo hiểm của nữ hoàng là 28/64 = 43.75%
. Nếu nữ hoàng ở quảng trường phía trên bên phải h8
, phạm vi bảo hiểm sẽ là 22/64 = 34.375%
. Nếu nữ hoàng ở trong e7
, phạm vi bảo hiểm sẽ là 24/64 = 37.5%
.
Các thách thức
Chúng tôi sẽ sử dụng ốp lát Fibonacci được trình bày ở trên làm bàn cờ của chúng tôi cho thử thách này. Bạn sẽ được cung cấp hai số nguyên dương làm đầu vào n
và x
:
- Các
n
đại diện cho mức độ lớn của ốp lát. Ví dụ ốp lát ở trên, với21
hình vuông bên trái, là một bảng có kích thướcn = 8
kể từf(8) = 21
(khi được lập chỉ mục bằng 0). - Đại
x
diện cho hình vuông Fibonacci nào được sử dụng cho vị trí nữ hoàng, để tính toán phạm vi bảo hiểm. Các kiến trúc được đặt một lần một lần trên mỗi ô vuông trong ô vuông Fibonacci cụ thể đó và tổng độ bao phủ là tổng của phạm vi bảo hiểm (duy nhất).
Ví dụ, đây là một hình ảnh của n = 8
(cùng một lát như trên) và x = 4
(tương ứng với f(4) = 3
hình vuông, màu xanh lam). Bằng cách đặt một nữ hoàng một lần vào mỗi trong số chín ô vuông màu xanh đó, các nữ hoàng có thể (kết hợp) bao phủ mọi ô vuông có màu cam. Do đó, tổng bảo hiểm trong ví dụ này là 309/714 = 43.28%
.
Rõ ràng, bất cứ lúc nào n = x
, phạm vi bảo hiểm sẽ diễn ra 100%
(ví dụ, với n=8
và x=8
, bạn có thể thấy rằng mọi ô vuông trên toàn bộ bảng sẽ được phủ ít nhất một lần). Ngược lại, với độ lớn phù hợp n
và x=1
hoặc x=2
, phạm vi bảo hiểm sẽ tiếp cận (nhưng không bao giờ đạt được) 0%
(ví dụ, với n=8
và x=1
, phạm vi bảo hiểm là rất nhỏ 88/714 = 12.32%
).
Cho hai số đầu vào như vậy, bạn phải xuất tỷ lệ phần trăm bảo hiểm, chính xác đến hai chữ số thập phân. Vui lòng xác định cách mã của bạn xử lý làm tròn.
Quy tắc
- Đầu vào và đầu ra có thể được cung cấp ở bất kỳ định dạng thuận tiện nào , nhưng phải chính xác đến hai chữ số thập phân. Vui lòng xác định cách mã của bạn xử lý làm tròn.
- Giả sử không có mảnh nào khác trên bảng hoặc can thiệp vào việc di chuyển.
- Một chương trình đầy đủ hoặc một chức năng được chấp nhận. Nếu một chức năng, bạn có thể trả lại đầu ra thay vì in nó.
- Nếu có thể, vui lòng bao gồm một liên kết đến một môi trường thử nghiệm trực tuyến để người khác có thể thử mã của bạn!
- Sơ hở tiêu chuẩn bị cấm.
- Đây là môn đánh gôn, vì vậy tất cả các quy tắc chơi gôn thông thường đều được áp dụng và mã ngắn nhất (tính bằng byte) sẽ thắng.
Ví dụ
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