( 채팅에서 "chess"와 "Fibonacci"태그를 무작위로 페어링 한 Helka의 답변 에서 영감을 얻었습니다 )
피보나치
피보나치 수열는 각 번호 함께 두 이전 번호를 추가하여 구성되어 수학 더 잘 알려진 서열 중 하나이다. 아래는 제로 인덱스 시퀀스의 정의입니다.
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
그 결과 시퀀스가됩니다 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
( OEIS 링크 ). 이 과제에서 우리는 엄격하게 양수 값에만 초점을 맞출 것이므로 ( 1, 1, 2, 3, ...
0) 색인을 생성하지 않거나 색인을 생성 할 수는 있지만 제출할 내용을 명시하십시오.
피보나치 수는 f(n)
크기 가 연속적인 정사각형을 사용 하고 가장자리를 함께 정렬 하여 평면 타일링에 사용할 수 있습니다 . 바둑판 식 배열은 현재 사각형에서 "오른쪽 위 왼쪽 아래"패턴으로 사각형을 배치하여 시계 반대 방향으로 수행됩니다. f(8)=21
시작 부분이 파란색으로 강조 표시된 이 부분 타일링의 예는 다음과 같습니다.
당신은 볼 수 있습니다 f(1)=1
(파란색으로 표시) 시작 정사각형의로 f(2)=1
받는 배치 광장 바로 그것의의 f(3)=2
사각형 배치 까지 의 거기에서 f(4)=3
광장이 배치 왼쪽 에 있도록합니다. 다음 정사각형은 f(9)=21+13=34
바닥에 놓일 것입니다. 이것이 우리가이 도전에 사용할 부분적 타일링 방법입니다.
퀸즈
체스 게임 에서 가장 강력한 작품은 여왕 입니다. 가로, 세로 또는 대각선으로 여러 공간을 이동할 수 있기 때문입니다. 아래 보드 다이어그램에서 검은 색 원이있는 사각형은 여왕이 움직일 수있는 곳을 나타냅니다.
적용 범위 라는 용어 를 다음 과 같이 정의합니다.
빈 보드에서 여왕의 특정 위치와 여왕 자신의 시작 위치를 포함하여 여왕이 이동할 수있는 제곱의 백분율.
위의 예제에서 여왕의 범위는 28/64 = 43.75%
입니다. 여왕이 오른쪽 상단 h8
광장 에 있다면, 범위는입니다 22/64 = 34.375%
. 여왕이 안에 e7
있었다면, 그 범위는 될 것입니다 24/64 = 37.5%
.
도전
위에서 설명한 피보나치 타일링을이 도전을위한 체스 판으로 사용할 것입니다. 당신은 입력으로 두 개의 양의 정수를 주어됩니다 n
및 x
:
- 는
n
타일링이 얼마나 큰 의미한다.21
왼쪽에 정사각형이있는 위의 타일링 예제 는n = 8
이후 크기f(8) = 21
가 0 인 인덱스 보드입니다 . - 는
x
커버리지를 계산, 퀸 (S) 배치를 위해 사용된다 피보나치 사각형 중 어느 나타낸다. 여왕은 특정 피보나치 정사각형 타일의 각 정사각형에 한 번에 하나씩 배치되며 총 적용 범위는 개별 (고유 한) 적용 범위의 요약입니다.
예를 들어, 여기에 n = 8
(위와 동일한 타일링) 및 x = 4
( f(4) = 3
사각형에 해당하는 파란색 음영) 이미지가 있습니다. 9 개의 파란색 사각형 각각에 한 번에 여왕을 배치하면 여왕은 주황색으로 표시된 모든 사각형을 (결합) 덮을 수 있습니다. 따라서이 예의 전체 적용 범위는 309/714 = 43.28%
입니다.
분명히, n = x
적용 범위가 될 때마다 100%
(예를 들어, n=8
및 x=8
을 사용하면 전체 보드의 모든 정사각형이 적어도 한 번 포함됨을 알 수 있습니다). 반대로, 적당히 큰 n
및 x=1
/ 또는 x=2
범위를 사용하면 범위가 접근 할 수는 있지만 도달하지는 않습니다 0%
(예 : n=8
및 x=1
범위를 가진 경우 범위는 paltry입니다 88/714 = 12.32%
).
두 개의 입력 번호가 주어지면 범위 백분율을 소수점 이하 두 자리까지 정확하게 출력해야합니다. 코드가 반올림을 처리하는 방법을 지정하십시오.
규칙
- 입력 및 출력은 편리한 형식 으로 제공 할 수 있지만 소수점 이하 두 자리까지 정확해야합니다. 코드가 반올림을 처리하는 방법을 지정하십시오.
- 보드에 다른 조각이 없거나 이동을 방해한다고 가정하십시오.
- 전체 프로그램 또는 기능이 허용됩니다. 함수 인 경우 출력하지 않고 출력을 반환 할 수 있습니다.
- 가능하면 다른 사람들이 귀하의 코드를 시험해 볼 수 있도록 온라인 테스트 환경에 대한 링크를 포함하십시오!
- 표준 허점 은 금지되어 있습니다.
- 이것은 코드 골프 이므로 모든 일반적인 골프 규칙이 적용되며 가장 짧은 코드 (바이트)가 이깁니다.
예
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