Skip to content

Instantly share code, notes, and snippets.

@hossainel
Last active May 17, 2025 17:05
Show Gist options
  • Save hossainel/58e23955eb3e55902e0648102310b06f to your computer and use it in GitHub Desktop.
Save hossainel/58e23955eb3e55902e0648102310b06f to your computer and use it in GitHub Desktop.
/* https://gist.github.com/hossainel/58e23955eb3e55902e0648102310b06f */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generateMatrix(int M[10][10], int N) {
srand(time(0));
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
M[i][j] = rand() % 10;
}
}
}
int isReflexive(int M[10][10], int N) {
for (int i = 0; i < N; i++) {
if (M[i][i] == 0) return 0;
} return 1;
}
int isSymmetric(int M[10][10], int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (M[i][j] != M[j][i]) return 0;
}
} return 1;
}
int isAntisymmetric(int M[10][10], int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i != j && M[i][j] != 0 && M[j][i] != 0) return 0;
}
} return 1;
}
int isTransitive(int M[10][10], int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) {
if (M[i][j] != 0 && M[j][k] != 0 && M[i][k] == 0) return 0;
}
}
} return 1;
}
int isIrreflexive(int M[10][10], int N) {
for (int i = 0; i < N; i++) {
if (M[i][i] != 0) return 0;
} return 1;
}
int main() {
srand(time(0));
int N = rand() % 10 +1;
printf("N = %i",N);
int M[10][10];
generateMatrix(M, N);
printf("\nGenerated Relation Matrix:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", M[i][j]);
} printf("\n");
}
printf("\nRelation Properties: ");
int p=0;
if ( isReflexive(M, N) ) printf("Reflexive", p=1);
if ( isSymmetric(M, N) ) printf("%sSymmetric", p ? ", " : "", p=1);
if ( isAntisymmetric(M, N) ) printf("%sAntisymmetric", p ? ", " : "", p=1);
if ( isTransitive(M, N) ) printf("%sTransitive", p ? ", " : "", p=1);
if ( isIrreflexive(M, N) ) printf("%sIrreflexive", p ? ", " : "", p=1);
if (!p) printf("None");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment