收藏 分享(赏)

离散数学实验指导书(2007-12-24)3.doc

上传人:dreamzhangning 文档编号:2311851 上传时间:2018-09-10 格式:DOC 页数:34 大小:208.50KB
下载 相关 举报
离散数学实验指导书(2007-12-24)3.doc_第1页
第1页 / 共34页
离散数学实验指导书(2007-12-24)3.doc_第2页
第2页 / 共34页
离散数学实验指导书(2007-12-24)3.doc_第3页
第3页 / 共34页
离散数学实验指导书(2007-12-24)3.doc_第4页
第4页 / 共34页
离散数学实验指导书(2007-12-24)3.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、1前 言通常人们对离散数学教学的认识就是概念、定理、公式和解题。但是,离散数学不仅仅是这些,还有实验。在理论教学过程中,学生的活动只是“智力活动”,或更为直接地说是解题活动,教师在上面讲离散数学,而学生则每天在课堂上听课并在纸上做题目。这样,对多数学生而言,离散数学的发现探索活动没有能够真正开展起来。离散数学实验教学,通常由教师提出问题,让学生在计算机上做实验,利用小组合作学习或者组织全班讨论,开展研究性学习活动;实验过程中,依靠计算机,让学生主动参与发展、探究、解决问题,从中获得离散数学研究、解决实际问题的过程体验、情感体验,产生成就感,进而开发学生的创新潜能,因而对离散数学实验课程教学进行

2、研究具有重要意义。利用计算机进行离散数学实验教学,不仅是开展离散数学研究性学习的一种有效方式,而且也为数据结构及程序设计课程教学的开展提升了层次。知识经济时代对创新人才的需求与离散数学教育中忽视学生创造性能力培养的矛盾日益凸显。在教学中倡导研究性学习,开展离散数学实验课程教学的研究与探索,与当前社会对离散数学教学的需求是一致的。目前国内外很少有人对离散数学实验课程教学进行研究,尤其是国内进行这方面研究的人员更少,人们更重视离散数学理论课程教学的研究,忽视了离散数学实验课程对理论课程教学的辅助与促进作用,也忽视了离散数学实验课程与数据结构等课程的有机联系。因而我准备进行离散数学实验课程教学的研究

3、与探索,以便更好的做好离散数学课程的教学改革工作。本课程主要包括四个部分:集合与关系、图论、代数系统、数理逻辑。要求学生了解算法,理解运用 C 或 C+语言把书中的部分内容的算法编写出能在计算机上运行的程序的思想,掌握实现离散数学部分算法程序设计的基本编程技术。2目 录前 言 1实验一 求集合的并集 3实验二 求集合的交集 5实验三 求集合的差集 7实验四 求集合的笛卡儿乘积 9实验五 判断关系 R 是否为自反关系 11实验六 判断关系 R 是否为对称关系 13实验七 判关系 R 是否为可传递关系 15实验八 判断关系 R 是否为等价关系 16实验九 求等价类 17实验十 由两个已知关系通过合

4、成构造新的关系 18实验十一 关系的闭包运算 19实验十二 求满射函数 20实验十三 求可达矩阵的 Warshall 算法 22实验十四 最小生成树的 Kruskal 算法 23实验十五 判别图的连通性 25实验十六 判断是否为代数系统的算法 27实验十七 判断是否为群的算法 28实验十八 构造合式公式的真值表 303实验一 求集合的并集1、实验类型:操作性2、实验目的通过编程实现求给定集合 A 和 B 的并集 C(C=AB)的运算。3、 实验内容已知所给集合 A 和 B,求 A 与 B 的并集 C(C=AB) 。4、实验原理因为并集的定义为:C=x|xAxB,所以,只要将集合 A 与 B 合

5、在一起就得到了并集 C。但是,在一个集合中,同样的元素没必要出现两次或两次以上,所以,在将集合 A 送入并集 C 后,应将集合 B 中与 A 中相同的元素删除,再将集合 B送入并集 C 之中。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习集合运算中交集的定义,实验由一人一组完成。所编程序能够通过编译,并能够实现求两个给定集合的交集。7、实验步骤及注意事项(1) 集合 B 的元素个数送 M,集合 A 的元素个数送 N。(2) A C。(3) 1 i

6、。(4) 若 i M,则结束。(5) 否则,对于 j=1,2,.,n,判断:b i=aj,若相等,则转(7) 。(6) 否则,b i C。4(7) i+1 i,转(4) 。8、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序求给定集合 A 和 B 的并集。(3)写出实验结束时的程序清单及运行结果及实验总结。5实验二 求集合的交集1、实验类型:操作性2、实验目的通过编程实现求给定集合 A 和 B 的交集 C(C=AB)的运算。3、实验内容已知所给集合 A 和 B,求 A 与 B 的交集 C(C=AB)4、实验原理根据交集的定义:C=x|xAxB,我们

7、将集合 A 的各个元素与集合 B 的元素进行比较,若在集合 B 中存在某个元素并和集合 A 中一元素相等,则将该元素送入交集 C 之中。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习集合运算中并集的定义,实验由一人一组完成。所编程序能够通过编译,并能够实现求两个给定集合的并集。7、实验步骤及注意事项(1) 将集合 A 的元素送 N。(2) 1 i(3) 若 iN,则结束。(4) 否则,将 ai与集合 B 中的每个元素进行比较,若 ai与集合 B

8、中所有元素均不相同,则转(6) 。(5) 否则,a i C。(6) i+1 i,转(3) 。8、实验报告要求6(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序给定集合 A 和 B 的交集。(3)写出实验结束时的程序清单及运行结果及实验总结。7实验三 求集合的差集1、实验类型:操作性2、实验目的通过编程实现求给定集合 A 和 B 的差集 C(C=A-B)的运算。3、实验内容已知所给集合 A 和 B,求 A 与 B 的差集 C(C=A-B) 。4、实验原理差集 C 的定义:差集 C=x|xAx B,即对于集合 A 中的元素 ai,若不存在bjB(j=1,2,m)

9、,使得 ai=bj,则 ai 差集 C。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习集合运算中差集的定义,实验由一人一组完成。所编程序能够通过编译,并能够实现求两个给定集合的差集。7、实验步骤及注意事项(1) 将集合 A 的元素个数送 N。(2) 1 i。(3) iN,则结束。(4) 否则,将 ai与集合 B 中的每个元素相比较,若 ai 与集合 B 中的某个元素相同,则转(6) 。(5) 否则,a i C。(6) i+1 i,转(3) 。8、

10、实验报告要求(1)写出实验过程中遇到的问题及其解 决过程。8(2)写出类 c 的算法并编写一个程序给定集合 A 和 B 的差集。(3)写出实验结束时的程序清单及运行结果及实验总结。9实验四 求集合的笛卡儿乘积1、实验类型:设计性2、实验目的通过编程实现求给定集合 A 和 B 的笛卡儿乘积 C(C=AB)的运算。3、实验内容已知所给集合 A 和 B,求 A 与 B 的笛卡儿乘积 C(C=AB) 。4、实验原理笛卡儿乘积是以有序偶为元素组成的集合,它的定义为 C=|xAyB。所以,欲求笛卡儿乘积。只需取尽由集合 A 的元素及集合 B 的元素,并构成序偶送入 C 之中即可。5、实验仪器设备或软件环境

11、及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习笛卡儿乘积的定义,实验由一人一组完成。所编程序能够通过编译,并能够实现求两个给定集合的笛卡儿乘积。7、实验步骤及注意事项(1) 将集合 A 的元素个数送入 N。(2) 将集合 B 的元素个数送入 M。(3) 1 i。(4) 若 iN,则结束。(5) 1 j。(6) 若 jM,则转(9) 。(7) C。10(8) j+1 j,转(6) 。(9) i+1 i,转(4) 。8、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。

12、(2)写出类 c 的算法并编写一个程序给定集合 A 和 B 的交集。(3)写出实验结束时的程序清单及运行结果及实验总结。9、思考题如何编程实现求有限个集合(集合的个数大于 2)的笛卡尔乘积。11实验五 判断关系 R 是否为自反关系1、实验类型:设计性2、实验目的通过算法设计并编程实现对给定集合上的关系是否为自反关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。3、实验内容已知关系 R 由关系矩阵 M 给出,要求判断由 M 表示的这个关系是否为自反关系。4、实验原理从给定的关系矩阵来断判关系 R 是否为自反是很容易的。若 M(R 的关系矩阵)的主对角线元素均为 1,则 R 是

13、自反关系;若 M( R 的关系矩阵)的主对角线元素均为 0,则 R 是反自反关系;若 M(R 的关系矩阵)的主对角线元素既有 1 又有 0,则 R 既不是自反关系也不是反自反关系。本算法可以作为判等价关系算法的子程序给出。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习关系的性质,实验由一人一组完成。所编程序能够通过编译,并能够实现对给定集合上的关系自反性质的判定。7、实验步骤及注意事项(1) 输入关系矩阵 M(M 为 n 阶方阵) 。(2) 判断

14、自反性,对于 i=1,2,.,n;若存在 mii=0,则 R 不是自反的;若存在 mii=1,则 R 是自反的;否则 R 既不是自反关系也不是反自反关系。12(3) 输出判断结果。8、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序判断给定集合上的关系是否为自反的。(3)写出实验结束时的程序清单及运行结果及实验总结。13实验六 判断关系 R 是否为对称关系1、实验类型:设计性2、实验目的通过算法设计并编程实现对给定集合上的关系是否为对称关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。3、实验内容已知关系 R 由关系矩阵 M 给

15、出,要求判断由 M 表示的这个关系是否为对称关系。4、实验原理从给定的关系矩阵来判断关系 R 是否为对称是很容易的。若 M(R 的关系矩阵)为对称矩阵,则 R 是对称关系;若 M 为反对称矩阵,则 R 是反对称关系。因为 R 为对称的是等价关系的必要条件,所以,本算法可以作为判等价关系算法的子程序给出。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习关系的性质,实验由一人一组完成。所编程序能够通过编译,并能够实现对给定集合上的关系对称性质的判定。7

16、、实验步骤及注意事项(1) 输入关系矩阵 M(M 为 n 阶方阵) ;(2) 判断对称性,对于 i=2,3,.,n;j=1,2,,i-1,若存在 mij=mji,则R 是对称的;(3) 判断反对称性;(4) 判断既是对称的又是反对称的;14(5) 判断既不是对称的又不是反对称的;(6) 输出判断结果。8、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序判断给定集合上的关系是否为对称的。(3)写出实验结束时的程序清单及运行结果及实验总结。15实验七 判关系 R 是否为可传递关系1、实验类型:设计性2、实验目的通过算法设计并编程实现对给定集合上的关系是

17、否为传递关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。3、实验内容已知关系 R 由关系矩阵 M 给出,要求判断由 M 表示的这个关系是否为传递关系。4、实验原理一个关系 R 的可传递性定义告诉我们,若关系 R 是可传递的,则必有:mik=1m kj=1 mij=1。这个式子也可改写成为: mij =0 mik =0m kj=0。我们可以根据后一个公式来完成判断可传递性这一功能的。可传递性也是等价关系的必要条件,所以,本算法也可以作为判等价关系算法的子程序给出。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Lin

18、ux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习关系的性质,实验由一人一组完成。所编程序能够通过编译,并能够实现对给定集合上的关系传递性质的判定。7、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)设计出类 c 的算法并编写一个程序判断给定集合上的关系是否为传递的。(3)写出实验结束时的程序清单及运行结果及实验总结。8、思考题写出另一种判断关系传递性的算法,即在 M(RR)中,若任意 r ij=1 ,则 MR16中相应的元素 rij=1,并据此设计出关系传递性质判断的程序。17实验八 判断关系 R 是否为等价关系1、实验类型:设计性2、实验目的

19、通过算法设计并编程实现对给定集合上的关系是否为自反的、对称的和传递关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断等价关系的方法。3、实验内容给定 R 的关系矩阵,据此判断所给关系 R 是否为等价关系。4、实验原理设 R 为非空集合 A 上的关系. 如果 R 是自反的、对称的和传递的, 则称 R 为 A上的等价关系。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习关系的性质,实验由几个人一组完成。所编程序能够通过编译,并能够实现对给定集合上的

20、关系性质的判定。7、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序判断给定集合上的关系是否为等价关系。(3)写出实验结束时的程序清单及运行结果及实验总结。8、思考题设计一个程序,求出对给定的有限集合的所有划分。18实验九 求等价类1、实验类型:设计性2、实验目的通过算法设计并编程实现对给定集合上的关系是否为自反的、对称的和传递关系的判断,加深学生对等价关系和等价类的理解,掌握求等价类的方法。3、实验内容给定一个集合1,2,n,及其上的一个等价关系 R,求 R 上的等价类。4、实验原理给定任意关系,欲判断 R 是否为等价关系,可用实验八所给出的程序

21、。但是,如果给定一个等价关系,那么它的关系矩阵必为对称矩阵。为了节省存储空间,只要存放关系矩阵的一半就可以了(另一半与这一半相同) 。我们可以用一维数组来存放关系矩阵的下三角矩阵(包括主对角线在内) ,具体对应关系如下:根据等价类的定义可知,等价类内的各元素之间均有 R 关系,所以在构造等价类时,只要依据所给关系矩阵,把所有相互有 R 关系的各元素归为一类就可以了。在输出时,把每一类显示在同一行上。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习等

22、价关系和等价类的定义,实验由几个人一组完成。所编程序能够通过编译,并能够实现求出给定集合上等价关系的等价类。7、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序求出给定集合上的等价关系的等价类。(3)写出实验结束时的程序清单及运行结果及实验总结。19实验十 由两个已知关系通过合成构造新的关系1、实验类型:设计性2、实验目的通过算法设计并编程实现求对给定的关系的合成关系,加深学生对合成关系运算的理解。3、实验内容设关系 A 是从集合 X=1,2,.,n到集合 Y=1,2,m的二元关系,而关系 B 是从集合 Y 到集合 Z=1,2,.,p的二元关系,求

23、 A 与 B 的合成关系C。4、实验原理由关系合成的定义可知:A B=|有 yY 使A 且B。若用关系矩阵来表示关系,则关系的合成运算类似于数值矩阵的乘法。不同的是用“”代替乘,用“”代替加。其中,00=0,00=0,01=1,01=0,10=1,10=0,11=1,11=15、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习关系合成的定义,实验由一人一组完成。所编程序能够通过编译,并能够实现求给定集合上的关系的合成的运算。7、实验报告要求(1)写出实

24、验过程中遇到的问题及其解决过程。(2)设计出类 c 的算法并编写一个程序求出给定的两个关系的合成关系。(3)写出实验结束时的程序清单及运行结果及实验总结。20实验十一 关系的闭包运算1、实验类型:设计性2、实验目的通过算法设计并编程实现求给定关系的各种闭包运算,加深学生对闭包运算的概念的理解。3、实验内容给定关系 R,求 R 的自反闭包及 R 的对称闭包。4、实验原理若关系 R 的关系矩阵为 M,而自反闭包为 A(即 r(R)=A) ,对称闭包为 B(即S(R)=B) ,则 A=MI B=MM T 其中,I 为恒等矩阵,M T为 M 的转置矩阵。5、实验仪器设备或软件环境及工具运行 Windo

25、ws 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习关系闭包的定义,实验由几人一组完成。所编程序能够通过编译,并能够实现求出给定关系的闭包的运算。7、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并编写一个程序求出给定关系的闭包。(3)写出实验结束时的程序清单及运行结果及实验总结。8、思考题设计出求关系 R 的传递闭包的 Warshall 算法的程序。21实验十二 求满射函数1、实验类型:操作性2、实验目的通过算法设计并编程实现求出从集合 A 到 B 上的所有满射函

26、数的个数,加深学生对函数性质的理解。3、实验内容设 A、B 为有限集合,且|A|=m,|B|=n,求出从集合 A 到 B 的所有满射函数个数。4、实验原理从 A 到 B 的满射函数定义为:设 f : A B,若 ranf = B, 则称 f : A B 是满射的(或称为映到的) ,函数 f 为满射的必要条件是 |A|B|。否则就不是满射函数了。对于所给的问题,可以使用公式:F= + .+ nCm1nm)(2nCm)(1)(nCm来求得其解。但是在这儿,我们也可以使用计算机中常用的一种方法枚举法来求解。枚举法就是一个个的列出所有满足条件的函数,并将其记录下来,当枚举结束时就可得到欲求函数的数目。

27、对于上面提出的问题,相当于把 n 个不同的数字放到m 个位置上去的所有不同的方法。其中,数字是可重复出现的,但是每个数字必须都出现过至少一次才是满射函数。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求预习函数的定义和函数的性质,实验由几人一组完成。所设计的程序能够通过编译,并能够实现求从集合 A 到 B 上的所有满射函数的个数。227、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)设计出类 c 的算法并编写一个程序求出从集合 A 到

28、B 上的所有满射函数的个数。(3)写出实验结束时的程序清单及运行结果及实验总结。8、思考题设计出一个类 c 的算法,并编写一个程序求出从集合 A 到 B 上的所有单射函数的个数。23实验十三 求可达矩阵的 Warshall 算法1、实验类型:操作性2、实验目的通过算法设计并编程实现求出给定 n 个结点的图 G 的可达矩阵 P,加深学生对可达矩阵的理解。3、实验内容给定 n 个结点的图 G 的邻接矩阵 A,求 G 的可达矩阵 P。4、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言

29、的编译环境。5、实验要求复习图的矩阵表示部分的内容,实验由一人一组完成。所设计的程序能够通过编译,并能够实现从给定 n 个结点的图 G 的邻接矩阵 A,求出 G 的可达矩阵 P6、实验步骤及注意事项(1) 将图 G 的邻接矩阵送入 P(n,n)中。(2) 1 i。(3) 1 j。(4) 对于 k=1,2,n,作:P jk(P jiP ik) Pjk(5) j+1 j,若 j n,则转(4) 。(6) i+1 i,若 i n,则转(3) ,否则结束。7、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法并写出一个程序求给定 n 个结点的图 G 的可达矩阵 P (3)

30、写出实验结束时的程序清单及运行结果及实验总结。2425实验十四 最小生成树的 Kruskal 算法1、实验类型:设计性2、实验目的通过算法设计并编程实现求出给定无向连通加权图的一棵最小生成树,加深学生对求最小生成树的 Kruskal 算法的理解。3、实验内容给定无向连通加权图,编程设计求出其一棵最小生成树。4、实验原理设所给定无向连通加权图具有 n 个结点,m 条边,首先,将各条边的权按从小到大的顺序排序。然后依次将这些边按所给图的结构放到生成树中去。如果在放置某一条边时,使得生成树形成回路,则删除这条边。这样,直至生成树具有 n-1 条边时,我们所得到的就是一棵最小生成树。5、实验仪器设备或

31、软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习树及最小生成树的定义,实验由一人一组完成。所设计程序能够通过编译,并能够求出给定无向连通加权图的一棵最小生成树。7、实验步骤及注意事项(1) 边依小到大顺序得 l1,l 2,l m。(2) 置初值: S,0 i,1 j。(3) 若 i=n-1,则转(6) 。(4) 若生成树边集 S 并入一条新的边 lj之后产生的回路,则 j+1 j,并转(4) 。26(5) 否则,i+1 i;l j S(i) ;j+1 j,转(3)

32、。(6) 输出最小生成树 S。(7) 结束。8、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法,并写一个程序求出给定无向连通加权图的一棵最小生成树。(3)写出实验结束时的程序清单及运行结果及实验总结。27实验十五 判别图的连通性1、实验类型:设计性2、实验目的通过算法设计并编程实现,使学生掌握利用计算机语言判别图的连通性的基本方法。3、实验内容给定 n 个结点的有向图的邻接矩阵,可判断该图是否为强连通的,单向连通的,或弱连通的。4、实验原理对于给定的邻接矩阵 A,我们可以用前面给出的可达矩阵 Warshall 算法求出 A所表示的图的可达矩阵 P。对于可达矩阵

33、 P 来说,如果 P 的所有元素均为 1,则所给的有向图是强连通的;对于 P 的所有元素(除主对角线元素外)P ij来说,均有:Pij+Pji0,则所给有向图是单向连通的。当所给有向图既不是强连通的,又不是单向连通的时候,我们改造邻接矩阵为:对于矩阵 A 中所有的元素(除主对角线的元素外)a ij,若 aij=1 或 aji=1,则 1 aij且 1 aji。对于这样改造之后所得到的新的矩阵 A(A相当于原有向图忽略方向之后所得到的无向图的邻接矩阵) ,再用前面所述的方法进行判断,当 P的所有元素(除主对角线的元素外)均为 1 时,原有向图是弱连通图;否则,原有向图是不连通的。5、实验仪器设备

34、或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习图的强连通、单向连通和弱连通的定义,实验由几人一组完成。所编程序能够通过编译,并能够对给定 n 个结点的有向图的邻接矩阵,判断该图是否为强连通的,单向连通的,或弱连通的。287、实验步骤及注意事项(1)输入邻接矩阵 A(n,n) 。(2)A(n,n) P(n,n) 。(3)调用求可达矩阵子程序求出可达矩阵 P。(4)调用强连通或单向连通子程序。(5)若为强连通或单向连通的,则输出其标志,转结束;否则转(6) 。(6)

35、改造 A 阵为 A,且 A P(n,n) 。(7)调用求可达矩阵子程序。(8)调用判断连通或单向连通子程序。(9)若为强连通的,则输出原有向图是弱连通的;否则输出原有向图是非连通的。(10)结束。 8、实验报告要求(1)写出实验过程中遇到的问题及其解决过程。(2)写出类 c 的算法,并编写一个程序求出给定 n 个结点的有向图的邻接矩阵,据此判断该图是否为强连通的,单向连通的,或弱连通的。(3)写出实验结束时的程序清单及运行结果及实验总结。29实验十六 判断是否为代数系统的算法1、实验类型:设计性2、实验目的通过算法设计并编程实现加深学生对代数系统的定义的理解。3、实验内容给定一个数字集合 X=

36、0,1,n,并给出一个运算*(*运算由运算表给出) ,要求能够判断出:(1)是否为代数系统。(2)* 运算是否是可交换的。(3)* 运算是否是可结合的。4、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。5、实验要求复习代数系统的定义,实验由几人一组完成。所编程序能够通过编译,并能够对给定的一个数字集合 X=0,1,n与一个运算*(*运算由运算表给出) ,判断出是否为代数系统、* 运算是否是可交换的、* 运算是否是可结合的。6、实验报告要求(1)写出实验过程中遇到的问

37、题及其解决过程。(2)写出类 c 的算法,并编写一个程序判断出是否为代数系统、* 运算是否是可交换的、* 运算是否是可结合的。(3)写出实验结束时的程序清单及运行结果及实验总结。7、思考题如果所给集合 X 由字母组成,如何编程判断是否为代数系统。30实验十七 判断是否为群的算法1、实验类型:设计性2、实验目的通过算法设计并编程实现加深学生对半群、含幺半群和群的定义的理解。3、实验内容给出一个代数系统,其中:G=1,2,n,* 运算由运算表矩阵给出,要判断:(1)是否为半群; (2)是否为含幺半群;(3)是否为群。4、实验原理对于代数系统,若*运算是可结合的,则是半群。显然,这一点与上一个实验中判断 * 运算的可结合性是完全一致的。若是半群且*运算有幺元,则是含幺半群。若是含幺半群,且每个元素关于* 运算都是可逆的,则是群。5、实验仪器设备或软件环境及工具运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux)、Turboc、Vc(Windows)等 C 语言的编译环境。6、实验要求复习半群、含幺半群和群的定义,实验由几人一组完成。所编程序能够通过编译,并能够对给定的一个代数系统判断出其是否为半群、含幺半群和群。7、实验步骤(1)判断是否满足结合律对于 i=0,1,n,作(2) 。对于 j=0,1,n,作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报