
离散数学关系性质的C或C语言判断实验报告.doc
8页1.【实验目的】对称:通过算法设计并编程实现对给定集合上的关系是否为对称关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法自反:通过算法设计并编程实现对给定集合上的关系是否为自反关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法2.【实验内容】已知关系 R 由关系矩阵 M 给出,要求判断由 M 表示的这个关系是否为对称关系假定 R 的关系矩阵为: 123403.【实验要求】C 语言编程实现4.【算法描述】对称:从给定的关系矩阵来判断关系 R 是否为对称是很容易的若 M(R 的关系矩阵)为对称矩阵,则 R 是对称关系;若 M 为反对称矩阵,则 R 是反对称关系因为 R 为对称的是等价关系的必要条件,所以,本算法可以作为判等价关系算法的子程序给出算法实现:(1) 输入关系矩阵 M(M 为 n 阶方阵) ;(2) 判断对称性,对于 i=2,3,….,n;j=1,2,……,i-1,若存在mij=mji,则 R 是对称的;(3) 判断反对称性;(4) 判断既是对称的又是反对称的;(5) 判断既不是对称的又不是反对称的;(6) 输出判断结果 自反:从给定的关系矩阵来断判关系 R 是否为自反是很容易的。
若 M(R 的关系矩阵)的主对角线元素均为 1,则 R 是自反关系;若 M(R 的关系矩阵)的主对角线元素均为 0,则 R 是反自反关系;若 M(R 的关系矩阵)的主对角线元素既有1 又有 0,则 R 既不是自反关系也不是反自反关系本算法可以作为判等价关系算法的子程序给出算法实现(1) 输入关系矩阵 M(M 为 n 阶方阵) 2) 判断自反性,对于 i=1,2,….,n;若存在 mii=0,则 R 不是自反的;若存在 mii=1,则 R 是自反的;否则 R 既不是自反关系也不是反自反关系3) 输出判断结果源代码#includevoid z();void r();void main(){int d;while(d){printf("欢迎使用关系性质的判断系统\n\n 1. 对称关系的判断 2. 自反关系的判断\n\n 请输入选项:");scanf("%d",&d);switch(d){case 1: r();break;case 2: z();break;case 0: break;}printf("\n");printf("是否还继续? 是请输入 1,否请输入 0:");scanf("%d",&d);printf("\n\n");}return 0;}void r(){int a[30][30];int m,n,i,j,c,b,d;c=0;d=0;b=0;d=1;printf("请输入矩阵的行数");scanf("%d",&m);printf("请输入矩阵的列数");scanf("%d",&n);for(i=0;i












