주어진 행렬이 퀀들을 나타내는 지 결정하는 프로그램을 작성하십시오. quandle는 다음 공리를 따르는 단일 (비 - 교환 적, 비 결합) 동작 ◃ 구비 집합이다 :
- 작업이 닫힙니다. 즉,
a◃b = c
항상a
과 같은b
집합의 요소이다. - 작업은 오른쪽 자체 배포입니다.
(a◃b)◃c = (a◃c)◃(b◃c)
입니다.. - 연산은 옳게 나눌 수 있습니다.
a
및의 선택된 쌍에 대해 다음 과 같은b
단일 고유 항목c
이 있습니다.c◃a = b
- 작업은 dem 등원입니다.
a◃a = a
유한 양자는 정사각 행렬로 표현 될 수 있습니다. 아래는 order-5 퀀들 ( source )의 예입니다.
0 0 1 1 1
1 1 0 0 0
3 4 2 4 3
4 2 4 3 2
2 3 3 2 4
n 번째 행과 m 번째 열 (0 인덱스)에 위치한 값은 n◃m의 값입니다. 예를 들어이 퀀들에서 4◃1 = 3
. 이 행렬에서 일부 퀀들 속성을 쉽게 볼 수 있습니다.
- 이 5x5 매트릭스에는 값 0-4 만 표시되므로 닫힙니다.
- 행렬 대각선이 0 1 2 3 4이므로 dem 등원입니다.
- 중복 값이 포함 된 열이 없으므로 오른쪽으로 나눌 수 있습니다. (행은 가능할 것입니다.)
자기 분포의 속성은 테스트하기가 더 어렵습니다. 지름길이있을 수 있지만 가장 간단한 방법은 세 개의 색인 조합을 반복하여 확인하는 것 m[m[a][b]][c] = m[m[a][c]][m[b][c]]
입니다.
입력
입력은 0- 인덱싱 또는 1- 인덱스 (선택)를 사용하여 정사각 행렬의 행 목록이됩니다. 각 엔트리의 단일 자리 숫자 0
로 8
(또는 1
스루 9
). 입력 형식이 유연합니다. 허용되는 형식은 다음과 같습니다.
- 같은 행렬 또는 목록에 대한 귀하의 언어의 가장 자연스러운 형식
[[0 0 0][2 1 1][1 2 2]]
또는(0,0,0,2,1,1,1,2,2)
. - 공백, 줄 바꿈, 쉼표 등으로 구분 된 값 목록
- 모든 값 이루어진 단일 스트링과 같은, 서로 연접
000211122
.
또한 행렬을 입력으로 바꿉니다 (열이있는 행 바꾸기). 답에 이것을 명시하십시오.
산출
행렬의 상태를 퀀들로 나타내는 단일 진리 / 거짓 값입니다.
quandles의 예
0
0 0
1 1
0 0 0
2 1 1
1 2 2
0 0 1 1
1 1 0 0
3 3 2 2
2 2 3 3
0 3 4 1 2
2 1 0 4 3
3 4 2 0 1
4 2 1 3 0
1 0 3 2 4
비 뭉치의 예
닫히지 않은
1
0 0 0
2 1 1
1 9 2
자기 분배가 아닌
0 0 1 0
1 1 0 1
2 3 2 2
3 2 3 3
(3◃1)◃2 = 2◃2 = 2
(3◃2)◃(1◃2) = 3◃0 = 3
옳게 나눌 수없는
0 2 3 4 1
0 1 2 3 4
3 4 2 2 2
3 3 3 3 3
4 1 1 1 4
0 1 2 3
3 1 2 0
3 1 2 3
0 1 2 3
dem 등하 지 않다
1 1 1 1
3 3 3 3
2 2 2 2
0 0 0 0
2 1 0 4 3
3 4 2 0 1
4 2 1 3 0
1 0 3 2 4
0 3 4 1 2