728x90
반응형

Reflexive Relation 은 반사관계로 관계 R이 정의된 집합의 모든 원소 a에 대해서 aRa가 성립하는 경우에 대해 R을 반사관계라고 정의한다. 

Irreflexive Relation는 비반사관계로 모든 원소가 반사관계를 만족하지 않는 이항관계로 정의한다.

간단하게 설명하자면

 

1  1  1

1  1  1

1  1  1

 

위와 같은 행렬에서 대각선에 있는 모든 행렬이 1이기 때문에 반사관계로 볼 수 있고

 

0  1  1

1  0  1

1  1  0

 

위와 같은 행렬에서는 대각선에 있는 모든 행렬이 0이기 때문에 비반사관계라고 볼 수 있다.

 

0  1  1

1  1  1

1  1  0

 

위와 같은 경우에는 반사, 비반사관계 둘 다 만족하지 않는다.

위와 같은 과정을 프로그래밍 해보겠다.

 

 

#include <stdio.h>

void ReflexiveRelation(int arr[][3]) { //크기가 3인 정사각행렬로 가정
	int a = 0;
	int b = 0;
	int c = 0;
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			if (i == j && arr[i][j] == 1)
				a++;
			else if (i == j && arr[i][j] == 0)
				b++;
		}
	}
	if(a== 3)
		printf("반사관계!\n");
	else if(b==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] = { {0,1,1},{1,0,1},{1,1,0} }; //비반사관계
	int arr3[3][3] = { {0,1,1},{1,1,1},{1,1,0} }; //둘 다 아닌 경우

	ReflexiveRelation(arr1);
	ReflexiveRelation(arr2);
	ReflexiveRelation(arr3);
	
}

 

정의를 토대로 간단하게 프로그래밍 가능하다.

728x90
반응형

+ Recent posts