권수는 관찰자가 주어진 폐쇄 경로를 따라하게해야합니다 순 시계 반대 방향으로 회전의 정수이다. 시계 방향 회전은 권선 수에 대해 음수로 계산됩니다. 경로는 자체 교차 할 수 있습니다.
Wikipedia에서 발췌 한 몇 가지 예는 다음과 같습니다.
목표는 주어진 경로에 대한 권선 수를 계산하는 것입니다.
입력
관찰자는 원점에 있다고 가정합니다 (0,0)
.
입력은 조각 별 선형 경로를 설명하는 원하는 입력 소스의 유한 포인트 시퀀스 (정수의 쌍 모양)입니다. 원하는 경우 이것을 1D 정수형 정수로 편 평화하고 모든 y 좌표보다 먼저 모든 x 좌표를 취하기 위해 입력을 스위블 할 수도 있습니다. 입력을 복소수로 사용할 수도 있습니다 a+b i
. 경로는 자체 교차 할 수 있으며 길이가 0 인 세그먼트를 포함 할 수 있습니다. 첫 번째 점은 경로의 시작이며 양의 x 축 어딘가에 있다고 가정합니다.
경로의 어느 부분도 원점과 교차하지 않습니다. 경로는 항상 닫힙니다 (즉, 첫 번째 지점과 손실 지점이 동일 함). 코드가 마지막 요점을 암시하거나 포함해야 할 수도 있습니다.
예를 들어, 선호도에 따라 두 입력 모두 동일한 사각형을 지정합니다.
암시 된 종점
1,0
1,1
-1,1
-1,-1
1,-1
명백한 종말점
1,0
1,1
-1,1
-1,-1
1,-1
1,0
산출
출력은 권선 번호의 단일 정수입니다. 이것은 모든 소스 (반환 값, 표준 출력, 파일 등) 일 수 있습니다.
예
모든 예제에는 명시 적으로 정의 된 끝 점이 있으며 x, y 쌍으로 제공됩니다. 또한 암시 적으로 정의 된 엔드 포인트를 가정하고 출력이 동일해야한다고 가정하면 이러한 예제를 코드에 직접 제공 할 수 있어야합니다.
1. 기본 테스트
1,0
1,1
-1,1
-1,-1
1,-1
1,0
산출
1
2. 반복 점 테스트
1,0
1,0
1,1
1,1
-1,1
-1,1
-1,-1
-1,-1
1,-1
1,-1
1,0
산출
1
3. 시계 방향 테스트
1,0
1,-1
-1,-1
-1,1
1,1
1,0
산출
-1
4. 외부 시험
1,0
1,1
2,1
1,0
산출
0
5. 혼합 권선
1,0
1,1
-1,1
-1,-1
1,-1
1,0
1,-1
-1,-1
-1,1
1,1
1,0
1,1
-1,1
-1,-1
1,-1
1,0
1,1
-1,1
-1,-1
1,-1
1,0
산출
2
채점
이것은 코드 골프입니다. 가장 짧은 코드가 승리합니다. 표준 허점이 적용됩니다. 권선 수를 계산하도록 특별히 설계되지 않은 한 내장 함수를 사용할 수 있습니다.
"1-i"
또는"1-1i"
? 와 같은 문자열 표현)로 취할 수 있습니다