추상 대수학에서 많은 중요한 주제는 집합에 작용하는 이진 함수를 포함합니다. 이러한 주제의 조사에서 그러한 기능의 많은 속성이 정의되었습니다.
주어진 도메인에서 주어진 이진 함수가 이러한 속성 중 다섯 가지를 소유하는지 확인해야합니다.
속성
가능한 모든 출력이 도메인에 있으면 이진 함수가 닫힙니다.
이진 함수는 함수가 일련의 입력에 적용되는 순서가 결과에 영향을 미치지 않으면 연관됩니다. 즉, 항상 같으면 $
연관됩니다 . 값 이 입력으로 사용되므로 연관 함수를 닫아야합니다.(a $ b) $ c
a $ (b $ c)
(a $ b)
입력 순서를 바꾸어도 결과가 바뀌지 않으면 이진 함수는 교환 형입니다. 즉, a $ b
항상 같으면 b $ a
입니다.
e
도메인 a $ e = a = e $ a
에 모든 요소가 포함되도록 일부 요소 가 도메인에있는 경우 이진 함수에는 identity 요소가 있습니다 a
.
이진 함수는 두 개의 동일한 입력에 적용하면 해당 숫자가 출력으로 제공되는 경우 dem 등수입니다. 다시 말해, 도메인 a $ a = a
에 모두 해당 a
되는 경우 입니다 .
입력
행렬의 형태로 함수가 주어지고 함수의 도메인은 숫자가 될 것입니다 0 ... n-1
. 여기서 n
행렬의 측면 길이입니다.
값 (a $ b)
은 행렬에서 3 a
번째 행의 3 b
번째 요소 로 인코딩됩니다 . 입력 행렬이Q
이면a $ b
=Q[a][b]
예를 들어, **
도메인 의 지수 함수 ( Python에서)는 다음 [0, 1, 2]
과 같이 인코딩됩니다.
[[1, 0, 0]
[1, 1, 1]
[1, 2, 4]]
왼쪽과 오른쪽 도메인은 동일하므로 행렬은 항상 정사각형입니다.
목록 목록, 행 또는 열 주요 순서의 단일 목록, 언어의 기본 행렬 개체 등과 같은 편리한 행렬 형식을 입력으로 사용할 수 있습니다. 그러나 함수를 직접 입력으로 사용할 수는 없습니다.
간단히하기 위해 행렬 항목은 모두 정수입니다. 언어의 고유 정수 유형에 적합하다고 가정 할 수 있습니다.
산출
부울 목록, 각 속성마다 다른 문자가 포함 된 문자열 등을 포함하여 위의 속성 중 원하는 속성을 선택할 수 있습니다. 그러나 가능한 24 개의 하위 집합 각각에 대해 고유하고 고유 한 출력이 있어야합니다. 속성의. 이 출력은 사람이 쉽게 읽을 수 있어야합니다.
예
도메인 n = 4의 최대 기능 :
[[0, 1, 2, 3]
[1, 1, 2, 3]
[2, 2, 2, 3]
[3, 3, 3, 3]]
이 함수에는 폐쇄, 연관성, 정류 성, 동일성 및 dem 등성이 있습니다.
도메인 n = 3의 지수 함수 :
[[1, 0, 0]
[1, 1, 1]
[1, 2, 4]]
이 함수에는 위의 속성이 없습니다.
도메인 n = 3의 추가 기능 :
[[0, 1, 2]
[1, 2, 3]
[2, 3, 4]]
이 함수는 commutativity 및 identity 속성을 갖습니다.
도메인 n = 3의 K 조합 자 :
[[0, 0, 0]
[1, 1, 1]
[2, 2, 2]]
이 함수에는 폐쇄, 연관성 및 dem 등성이 있습니다.
도메인 n = 3의 절대 차 함수 :
[[0, 1, 2]
[1, 0, 1]
[2, 1, 0]]
이 함수에는 폐쇄, 정류 및 동일성의 속성이 있습니다.
도메인 n = 3에서 짝수로 반올림 한 평균 함수 :
[[0, 0, 1]
[0, 1, 2]
[1, 2, 2]]
이 함수에는 클로저, commutativity, identity 및 idempotence의 속성이 있습니다.
도메인 n = 3의 등식 함수 :
[[1, 0, 0]
[0, 1, 0]
[0, 0, 1]]
이 함수는 클로저 및 commutativity 특성을 갖습니다.
도전
이것은 코드 골프입니다. 표준 허점이 적용됩니다. 최소 바이트가 이깁니다.
c=all(l>)
?