离散数学,二元关系的性质

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*实验二、二元关系及其性质、闭包运算

【实验目的】掌握二元关系在计算机上的表示方法,并掌握如何判定关系的性质;掌握求关系闭包的方法。

【实验内容和原理】

(1)A上的二元关系用一个n×n关系矩阵R=表示,定义一个n×n数组r[n][n]表示n×n矩阵关系。

(2)若R对角线上的元素都是1,则R具有自反性。

(3)若R是对称矩阵,则R具有对称性。对称矩阵的判断方法是:

。*/

#include

#include

int main()

{

int *a;int n;int i,j;int m=0;int k=0;int x;int z;int t;int b=0;int h;int y;int o,p;int l;

printf("请输入元素的个数:");

scanf("%d",&n);

a=(int*)malloc((n*n)*sizeof(int));

printf("输入矩阵中的数:\n");

for(i=0;i

for(j=0;j

{

printf("row%d,line%d=",i+1,j+1);

scanf("%d",&a[m]);

m++;

};

m=0;

for(i=0;i

{

for(j=0;j

{

printf("%d",a[m]);

m++;

};

printf("\n");

};

for(i=0;i

{

j=i*n+i;

if(a[j]==1) k++;

};

if(k==n) printf("R具有自反性\n");

k=0;

i=0;

j=n*n-1;

for(i=0;i

for(j=0;j

{

o=i*n+j;

p=j*n+i;

if(0==((o+1)/n)*n+(o+1)/n) continue;

if(a[o]!=a[p]) k++;

};

if(k==0) printf("R有对称性\n");

if(k>0) printf("R没有对称性\n");

k=0;x=0;t=0;y=l=0;

for(i=0;i

for(j=0;j

{

k++;

x=k/n;

if(k-1==x*n+x) continue;

m=i*n+j;

if(a[m]==1)

{l++;

b=j;

for(z=0;z

{

m=b*n+z;

h=(m+1)/n;

if(m==h*n+h) continue;

if(a[m]==1)

{

m=i*n+z;

if(a[m]==0) t++;

}

else y++;

};

};

};

if(t==0&&y!=l) printf("R具有传递性\n");

free(a); return 0; }

相关文档
最新文档