ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:725.98KB ,
资源ID:346268      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/346268.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大连民族大学软件工程离散数学课程设计.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大连民族大学软件工程离散数学课程设计.docx

1、大连民族大学软件工程离散数学课程设计大连民族学院计算机科学与工程学院实验报告实验题目: 1. 二元关系 2. 代数系统 课程名称: 离散数学 实验类型:演示性 验证性 操作性 设计性 综合性专业:软件工程 班级:132班 学生姓名:黄正勤 学号:2013082204 实验日期:2014年11月22日12月15日 实验地点:金石滩校区机房实验学时:16学时 实验成绩:指导教师:焉德军 姜楠 二元关系 (一)1.实验题目对给定表示有穷集上关系的矩阵,确定这个关系是否是自反的或反自反的;对称的或反对称的;是否传递的。2.实验原理从给定的关系矩阵来断判关系R是否为自反是很容易的。若flay(R的关系矩

2、阵)的主对角线元素均为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)先输入一个整数,表示矩阵的阶数。接着输入矩阵,这里以输

3、入矩阵0 0 1 0 0 0例,在根据矩阵左上到右下的flayii的值是否为1判断矩阵是否自反或反自反,判断矩阵是否自反或反自反的代码如下:for (i = 0; i a; i +) for (j = 0; j a; j+) if (i = j) if (flay ij = 1) count_1 +; else if (flay ij = 0) count_2 +; if (count_1 = a) cout 自反 endl; else if (count_2 = a) cout 反自反 endl;输入矩阵后输出的实验结果如下:(2)判断对称的或反对称只需要flayij是否与flayji相等;

4、若全部相等,则为可对称;否则反之。代码如下:for (i = 0; i a; i +) for (j = 0; j a; j+) if (flay ij = flay ji) count_1 +; else count_2 = 1; break; if (count_1 = a * a) cout 对称性 endl; else if (count_2 = 1) cout 反对称 endl; break; 运行结果如下:(3)而对于判别是否具有传递性,则相对前面两个性质来说比较复杂,关键是求出原矩阵flay的平方矩阵flag,这里通过线性代数的方法求出flay矩阵的平方矩阵flag,求平方矩阵的

5、方法是:第一个矩阵flayij等于flayij乘以第二个矩阵的第j列之总和;j+完后再i+,以后便可求出平方矩阵。然后在比较在平方矩阵flagij为1的位置,在原矩阵flayij中是否都为1;若flag矩阵中所有的为1的地方,在flay中都为1,则具有传递性;否则反之;最后输出该平方矩阵。代码如下所示:int k;for (i = 0; i a; i +)for (j = 0; j a; j+) flag ij = 0; for (k = 0; k a; k +) flag ij = flag ij + flay ik * flay kj; if (flag ij = 1) count_2 +

6、; for (i = 0 ; i a ; i +) for (j = 0; j a; j+) if (flag ij = 1 & flay ij = 1) count_3 +; else if (flag ij = 1 & flay ij = 0) count_1 = 1; break; if (count_1 = 1) break; if (count_2 = count_3 & count_2 != 0 & count_3 != 0) cout 传递性 endl; else cout 非传递性 endl; cout 该矩阵的平方为: endl; for (i=0; i a; i+) for

7、 (k=0; k a; k+) cout flag ik ; cout b endl; 运行结果如下:以上便是对自反或反自反,对称或反对称,是否传递等性质的判断过程,代码及运行代码的结果。4.实验总结此题为验证性题目,验证性题目主要是通过其原理以及相关的概念来证明。通过此题对验证性题目的分析有很大的提高。 (二)1.实验题目判断一个二元关系是否为等价关系,如果是,求其商集。2.实验原理要判断一个二元关系是否是等价关系,则要判断这个关系是否具有自反性,对称性和传递性;假如这三个条件都同时符合,则该二元关系具有等价关系。这里以为A=1,2,3,4,5,6,7,R=, U Ia 为例。自反性的判别与

8、上题一样,都是判别flayii是否都等于1;若flayii全部等于1,则具有自反性;否则反之。对于对称性与上题也一样,就是判断所有的flayij与flayji是否全部相等;若全部相等,则具有对称性;否则反之。传递性的判断,则需要利用线性代数的方法求出R的关系矩阵的平方矩阵,只需验证所有的flagij(R的关系矩阵的平方矩阵)等于1的地方,在flayij(R的关系矩阵)等于1,则具有传递性;否则反之。3.实验步骤及实验记录(1)先输入一个整数,表示矩阵的阶数;接着输出初始空矩阵。然后一组一组的输入R在A上的关系,输入0 0时结束;接着输出关系矩阵,判别与输入的关系是否一致。代码如下所示:void

9、 Input () for (i = 1; i = n; i +) for (j = 1; j = n; j+) flay ij = 0; for (i = 1; i = n; i +) for (j = 1; j = n; j+) cout flay ij ; cout endl; R();void R() cout 请输入两个位置有关系的数值,输入“0 0”结束R的输入: a b; if (a != 0 & b != 0) flay ab = 1; R(); void Output() for (i = 1; i = n; i +) for (j = 1; j = n; j+) cout

10、flay ij ; cout endl; 代码运行结果如下所示:(2)在根据矩阵左上到右下flayii的值是否为1判断矩阵是否是自反或反自反,判断矩阵是否自反或反自反的代码如下:int count = 0;for (i = 1; i = n; i +) for (j = 1; j = n; j+) if (i = j) if (flay ij = 1) count_1 +; else if (flay ij = 0) count_2 +; if (count_1 = n) cout 自反性 endl; syb_3 = 1;else cout 反自反性 endl;代码运行结果如下所示:(3)判断

11、对称的或反对称只需要flayij是否与flayji相等;若全部相等,则为可对称;否则反之。代码如下:for (i = 1; i = n; i +) for (j = 1; j = n; j+) if (flay ij = flay ji) count_1 +; else count_2 = 1; break; if (count_2 = 1) break; if (count_2 = 1) cout 反称性 endl; else cout 对称性 endl; syb_1 = 1; 代码运行结果如下所示:(4)而对于判别是否具有传递性,则相对前面两个性质来说比较复杂,关键是求出原矩阵flay的平

12、方矩阵flag,这里通过线性代数的方法求出flay矩阵的平方矩阵flag,求平方矩阵的方法是:第一个矩阵flayij等于flayij乘以第二个矩阵的第j列之总和;j+完后再i+,以后便可求出平方矩阵。然后在比较在平方矩阵flagij为1的位置,在原矩阵flayij中是否都为1;若flag矩阵中所有的为1的地方,在flay中都为1,则具有传递性;否则反之;最后输出该平方矩阵。代码如下所示:int k;for (i = 1; i = n; i +) for (j = 1; j = n; j+) flag ij = 0; for (k = 1; k = n; k +) flag ij = flag ij + flay ik * flay kj; if (flag ij != 0) coun

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1