资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
大连民族学院大连民族学院计算机科学与工程学院实验报告计算机科学与工程学院实验报告实验题目: 1. 二元关系 2. 代数系统 课程名称: 离散数学 实验类型:演示性 验证性 操作性 设计性 综合性专业:软件工程 班级:132 班 学生姓名:黄正勤 学号:2013082204 实验日期:2014 年 11 月 22 日12 月 15 日 实验地点:金石滩校区机房实验学时:16 学时 实验成绩:指导教师:焉德军 姜楠 二元关系二元关系(一)(一)1.实验题目实验题目 对给定表示有穷集上关系的矩阵,确定这个关系是否是自反的或反自反的;对称 的或反对称的;是否传递的。2.实验原理实验原理 从给定的关系矩阵来断判关系 R 是否为自反是很容易的。若 flay(R 的关系矩阵) 的主对角线元素均为 1,则 R 是自反关系;若 flay(R 的关系矩阵)的主对角线元素均 为 0,则 R 是反自反关系;若 flay(R 的关系矩阵)的主对角线元素既有 1 又有 0,则 R 既不是自反关系也不是反自反关系。而对于对称性,只需要判断矩阵所有的 flayij 与其对应的 flayji是否都相等;若全部相等,则为对称;否则反之。对于传递性,则 需要利用线性代数的方法求出 R 的关系矩阵的平方矩阵,只需验证所有的 flagij(R 的关系矩阵的平方矩阵)等于 1 的地方,在 flayij(R 的关系矩阵)等于 1,则具有 传递性;否则反之。3.实验的步骤及实验记录实验的步骤及实验记录0 1 1 (1)先输入一个整数,表示矩阵的阶数。接着输入矩阵,这里以输入矩阵 0 0 1 0 0 0 例,在根据矩阵左上到右下的 flayii的值是否为 1 判断矩阵是否自反或反自反,判断 矩阵是否自反或反自反的代码如下: for (i = 0; i ,U Ia 为例。自反性的判别与上题一样,都是判别 flayii是否都等于 1;若 flayii 全部等于 1,则具有自反性;否则反之。对于对称性与上题也一样,就是判断所有的 flayij与 flayji是否全部相等;若全部相等,则具有对称性;否则反之。传递性的 判断,则需要利用线性代数的方法求出 R 的关系矩阵的平方矩阵,只需验证所有的 flagij(R 的关系矩阵的平方矩阵)等于 1 的地方,在 flayij(R 的关系矩阵)等 于 1,则具有传递性;否则反之。3.实验步骤及实验记录实验步骤及实验记录(1)先输入一个整数,表示矩阵的阶数;接着输出初始空矩阵。然后一组一组的输入 R 在 A 上的关系,输入 0 0 时结束;接着输出关系矩阵,判别与输入的关系是否一致。 代码如下所示: void Input () for (i = 1; i a b; if (a != 0 R(); void Output() for (i = 1; i 是代数系统,*为二元运算,如果*运算 时可结合的,存在单位元 e 在 G 内,并且对 G 中任何元素 X 都有 X-1 在 G 内,则称 为群。 证明 * 运算可结合的原理是(X * Y) * Z = X * (Y * Z)即可。要证明死独异点,则要证 el * X = x 且 X * er = X, 则 e 就是幺元即可。而要证明有逆元,即证明 yl * X = e(e 为逆元)且 X * yr = e(e 为逆元)则 y 就是逆元即可。这就是证明群的原理。3.实验步骤及实验记录实验步骤及实验记录* eabc e eabc 本题以代数系统a aecb为例 b bcea c cbae(1)输入一个整数 N,表示有 N 个变量;在逐个输入变元,然后在逐个输入两个变 元关于 * 运算后相应的结果,最后输出该代数系统。代码如下:cout n; for (k = 1; k flay k; for (i = 1; i aij; 运行结果如下所示:(2)证明可结合性,其原理是在一个代数系统中(X * Y) * Z = X * (Y * Z),此处是本 人认为用代码证明群的难点所在。需要用一个 compute(i, j)函数去查找 X,Y 关于 * 运算后的结果,再用 conpute(i, j)函数返回来的值在做一次 compute(i, j)函数得 出最后结果。这样既可以比较(X * Y)* Z 与 X * (Y * Z)的值是否一样。代码如 下: void JieHe() for (i = 1; i = n; i +) for (j = 1; j = n; j +) for (k = 1; k = n; k +) if (compute (compute (i, j), k) = compute (i, compute (j, k)count_1 +;else count_2 = 1; break; if (count_2 = 1) break; if (count_2 = 1) break; if (count_2 = 1) cout “该代数系统不可结合!“ endl; exit (0); if (count_1 = n * n * n) cout “*运算可结合!“ endl “该代数系统为半群!“ endl endl; int compute (int x, int y) for ( t = 1; t = n; t +) if (flay t = axy) return t; return -1; 运行结果如下所示:(3)证明有幺元,即为独异点。要证明 el * X = x 且 X * er = X, 则 e 就是幺元。 代码如下所示:for (i = 1, s = 1; i = n; i +) count_1 = 0; count_2 = 0;for (j = 1; j = n; j +) if (aij = flay j) count_1 +; if (count_1 = n) for (k= 1; k = n; k +) if (aki = flay k) count_2 +; if (count_2 = n) cout “幺元为:“ flay i endl; s = flay i; count_3 +; if (count_3 != 0) cout “该代数系统是独异点!“ endl endl;else cout “该代数系统不是独异点!“ endl endl; exit (0); 运行结果如下:(4)证明有逆元。即证明 yl * X = e(e 为幺元)且 X * yr = e(e 为幺元)则 y 就是逆元。代码如下所示: for (i = 1; i = n; i +) for (j = 1; j = n; j +) if (aij = s count_4 +; cout endl;if (count_4 = n) cout “该代数系统存在逆元!“ endl “恭喜您,该代数系统 是群!“ endl endl; else cout “此代数系统不是群!“ endl;代码运行结果如下:4.实验总结实验总结 此题为验证性题目,通过做出此题,了解了群的概念,群的定义以及求群的条件, 即:运算可结合,存在单位元,每个原变元都存在逆元。此题还涉及到了矩阵相乘的 方法,可以很好的锻炼思维能力和理解能力。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号