离散数学实验:关系闭包的计算(C语言) | 您所在的位置:网站首页 › 矩阵运算c语言代码 › 离散数学实验:关系闭包的计算(C语言) |
一、实验目的
熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。 二、实验内容Warshall算法:设R是n个元素集合上的二元关系,M是R的关系矩阵; (1) 置新矩阵A:=M (2) 置i:=1; (3) for j=1 to n do if A[j,i]=1 then do for k=1 to n do A[j,k]:=A[j,k]+A[i,k] (4) i=i+1; (5) if i for (int i = 0;i printf("%d ", a[i][j]); } printf("\n"); } } void Input() { printf("请输入该关系矩阵的阶数(小于等于100):\n"); scanf("%d", &n); if (n 100) { printf("非法输入!\n"); exit(0); } printf("请输入关系矩阵:\n"); for (int i = 0;i scanf("%d", &matrix[i][j]); if (matrix[i][j] > 1 || matrix[i][j] int a[100][100]; for (int i = 0;i a[i][j] = matrix[i][j]; } } for (int i = 0;i int a[100][100]; for (int i = 0;i a[i][j] = matrix[i][j]; } } for (int i = 0;i if (a[i][j] == 1) //如果第i行第j列元素是1,那让第j行第i列的元素也为1 a[j][i] = 1; } } printf("对称闭包是:\n"); Display(a); } void TClosure() { int a[100][100]; for (int i = 0;i a[i][j] = matrix[i][j]; } } int i, j, k; for (i = 0;i if (a[j][i] >= 1) { for (k = 0;k for (j = 0;j |
CopyRight 2018-2019 实验室设备网 版权所有 |