2x2 행렬의 결정 요인
a b
c d
에 의해 제공됩니다 ad - bc
.
크기가 2 n x 2 n , n ≥ 1 인 자릿수 행렬이 주어지면 단일 숫자에 도달 할 때까지 각 2 x 2 서브 블록의 결정자를 재귀 적으로 계산하여 얻은 결과를 출력합니다.
예를 들어, 입력이 주어지면
3 1 4 1
5 9 2 6
5 3 5 8
9 7 9 3
한 단계 후에 우리는 다음을 얻습니다.
(3*9 - 1*5) (4*6 - 1*2) = 22 22
(5*7 - 3*9) (5*3 - 8*9) 8 -57
그리고 다시 한 번 반복하면 다음과 같은 결과를 얻습니다.
(22*-57 - 22*8) = -1430
따라서 출력은이어야합니다 -1430
.
규칙
- 행렬의 요소는 항상 한 자리 정수입니다 (예 : 0-9).
- 데이터의 전처리가 수행되지 않는 한 편리한 목록 또는 문자열 형식으로 입력 할 수 있습니다. 행렬은 항상 정사각형이므로 원하는 경우 2D 목록 대신 단일 1D 목록으로 입력 할 수 있습니다.
- 함수 입력, STDIN, 명령 줄 인수 또는 가장 가까운 대안을 통해 입력 할 수 있습니다.
- 출력은 기능 출력, STDOUT 또는 가장 가까운 대안으로 기능하기위한 단일 정수 여야합니다. 목록 또는 행렬에서 단일 정수를 출력 할 수 없습니다.
- 언어가 지원하는 경우 내장 결정자 및 행렬 조작 방법을 사용할 수 있습니다.
- 유효한 입력을 위해서는 알고리즘이 이론적으로 작동해야합니다.
- 표준 코드 골프 규칙이 적용됩니다.
테스트 사례
다음 테스트 사례는 Python 스타일 목록으로 제공됩니다.
[[1,0],[0,1]] -> 1
[[1,9],[8,4]] -> -68
[[0,1,2,3],[4,5,6,7],[8,9,0,1],[2,3,4,5]] -> 40
[[3,1,4,1],[5,9,2,6],[5,3,5,8],[9,7,9,3]] -> -1430
[[9,0,0,9],[0,9,9,0],[9,0,9,0],[0,9,0,9]] -> 13122
[[1,0,0,0,0,0,0,0],[2,1,0,0,0,0,0,0],[3,2,1,0,0,0,0,0],[4,3,2,1,0,0,0,0],[5,4,3,2,1,0,0,0],[6,5,4,3,2,1,0,0],[7,6,5,4,3,2,1,0],[8,7,6,5,4,3,2,1]] -> 1
[[7,1,0,5,8,0,1,5],[9,9,6,6,1,2,4,8],[4,8,7,3,8,7,4,7],[4,6,1,9,7,0,1,7],[7,6,7,1,9,4,1,6],[8,0,0,8,5,5,9,9],[4,6,4,8,9,4,8,6],[9,0,8,7,6,2,1,5]] -> 2937504
[[1,2,3,4,5,6,7,8],[2,3,4,5,6,7,8,1],[3,4,5,6,7,8,1,2],[4,5,6,7,8,1,2,3],[5,6,7,8,1,2,3,4],[6,7,8,1,2,3,4,5],[7,8,1,2,3,4,5,6],[8,1,2,3,4,5,6,7]] -> -10549504
[[1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0],[0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0],[1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0],[0,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1],[1,0,1,0,1,1,1,0,0,1,1,1,1,0,1,0],[0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,0],[1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1],[1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1],[1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1],[0,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1],[1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,0],[1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,0,1,0,0,1,0,1,0,1,1,1,1,1,0,1],[1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1]] -> -8
(이 도전에 도움을 주신 @ MartinBüttner에게 감사합니다)
[1,0,1,0;1,1,1,1;1,1,1,1;0,0,0,1]
. 두 개의 동일한 행이 있으므로 전체 결정 요인은 0입니다. 따라서 이것은 단수 (비가 역적) 4x4 행렬이므로 A055165에 포함되지 않습니다. 그러나 여기서 논의되는 "재귀 적"결정 요인은 1*1-1*0==1
입니다. 반대 방향으로, 매트릭스 [0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0]
는 "재귀 적"결정자를 갖는다 0*0-0*0==0
. 그러나 행은 다른 순서로 항등 행렬의 행일 뿐이므로 전체 결정 요인은 0이 아니어야합니다. 그리고 A055165에 의해 계산됩니다.