728x90
반응형

Symmetric Relation 은 대칭관계로 집합 X 상의 임의의 두 원소 a, b에 대하여 정의된 이항관계 R이 대칭관계라 함은 aRb이면 bRa를 만족한다고 정의한다.

Antisymmetric Relation 은 반대칭관계로 집합 X 상의 임의의 두 원소 a, b에 대하여 정의된 이항관계 R이 반대칭관계라 함은 aRb이고 bRa이면 a=b 를 만족한다고 정의한다.

쉽게 예를 들어보자

 

1  1  1

1  1  1

1  1  1

 

위 행렬은 정의로나 시각적으로도 대각선을 기준으로 대칭임을 알 수 있다.

 

1  1  1

0  1  1

0  0  1

 

위 행렬은 aRb 이고 bRa 인 경우가 대각선에 존재하는데 그것은 즉  a=b를 만족하게 된다. 반대칭인 것이다.

 

1  0  1

1  0  1

1  0  1

 

위 행렬은 두 개의 정의를 모두 만족시키지 못하므로 둘 다 아닌 경우가 된다.

자 위 과정을 프로그래밍 해보자

 

 

void SymemetricRelation(int arr[][3]) {
	int a = 0;

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			if (arr[i][j] == arr[j][i])
				a++;
		}
	}

	if (a == 9)
		printf("대칭관계!\n");
	else if (a == 3)
		printf("반대칭관계!\n");
	else
		printf("둘 다 아님!\n");

}

int main() {
	int arr1[3][3] = { {1,1,1},{1,1,1},{1,1,1} };
	int arr2[3][3] = { {1,1,1},{0,1,1},{0,0,1} };
	int arr3[3][3] = { {1,0,1},{1,0,1},{1,0,1} };

	SymemetricRelation(arr1);
	SymemetricRelation(arr2);
	SymemetricRelation(arr3);
}

 

간단하게 구현 가능하다.

728x90
반응형

+ Recent posts