离散数学:用C语言来判断集合存在的二元关系

用C语言来判断是否满足自反,反自反,非自反,对称,反对称,非对称和传递性

也不知道写的对不对。没有大量验证,但是随便找的一些关系测试的没毛病,如果错了,欢迎各位大佬留言

#include
const int maxn=1e3+10;
int a[maxn][maxn];
int vis[maxn][maxn];
int v[maxn][maxn];
int num,s_ize;
int res;
void relation1()//判断自反,反自反,非自反
{
	int flag=0;
	for(int i=1;i<=num;i++)
	{
		if(a[i][i])
			flag++;
	}
	if(flag==num)
		printf("满足自反性\n");
	else if(flag!=num&&flag!=0)
		printf("满足非自反性\n");
	else if(!flag)
		printf("满足反自反性\n");
}
void relation2()//判断对称
{
	int flag=0;
	for(int i=1;i<=num;i++)
	{
		for(int j=1;j<=num;j++)
		{
			if(a[i][j]==a[j][i]&&vis[i][j])
			{
				flag++;
				vis[i][j]=0;
			}
		}
	}
	if(flag==s_ize)
	{
		printf("满足对称性\n");
		res++;
	}
}
void relation3()//反对称,非对称 
{
	int flag=0;
	for(int i=1;i

 

你可能感兴趣的:(离散数学:用C语言来判断集合存在的二元关系)