离散数学实验指导书.docx
- 文档编号:30066296
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:27
- 大小:39.84KB
离散数学实验指导书.docx
《离散数学实验指导书.docx》由会员分享,可在线阅读,更多相关《离散数学实验指导书.docx(27页珍藏版)》请在冰豆网上搜索。
离散数学实验指导书
离散数学实验指导书
2015年3月6日
绪言
通常对离散数学教学的认识就是上课老师讲述一个个概念、定理、公式和例题,学生背概念、公式,理解基础上记忆定理,然后据此做证明题、计算以及解题。
实质上离散数学不仅仅是这些,还有实验。
在理论教学过程中,学生的活动只是“智力活动”,或更为直接地说是解题活动,教师在上面讲离散数学,而学生则每天在课堂上听课并在纸上做题目。
这样,对多数学生而言,离散数学的发现探索活动没有能够真正开展起来。
离散数学实验教学,通常由教师提出问题,让学生在计算机上做实验,利用小组合作学习或者组织全班讨论,开展研究性学习活动;实验过程中,依靠计算机,让学生主动参与发展、探究、解决问题,从中获得离散数学研究、解决实际问题的过程体验、情感体验,产生成就感,进而开发学生的创新潜能,因而对离散数学实验课程教学进行研究具有重要意义。
利用计算机进行离散数学实验教学,不仅是开展离散数学研究性学习的一种有效方式,而且也为数据结构及程序设计课程教学的开展提升了层次。
知识经济时代对创新人才的需求与离散数学教育中忽视学生创造性能力培养的矛盾日益凸显。
在教学中倡导研究性学习,开展离散数学实验课程教学的研究与探索,与当前社会对离散数学教学的需求是一致的。
目前国内外很少有人对离散数学实验课程教学进行研究,尤其是国内进行这方面研究的人员更少,人们更重视离散数学理论课程教学的研究,忽视了离散数学实验课程对理论课程教学的辅助与促进作用,也忽视了离散数学实验课程与数据结构等课程的有机联系。
因而本学期离散数学课程组依据“2014培养方案”准备进行离散数学实验课程教学的研究与探索,以便更好的做好离散数学课程的教学改革工作。
主要包括四个部分:
集合与关系、数理逻辑、代数系统、图论。
要求学生了解算法,理解运用C或C++语言(也可以是其他高级程序设计语言)把书中的部分内容的算法编写出能在计算机上运行的程序的思想,掌握实现离散数学部分算法程序设计的基本编程技术。
实验一求集合的运算——并运算
1、实验类型:
基础实验
2、实验目的
通过编程实现求给定集合A和B的并集C(C=A∪B)的运算。
3、实验内容
已知所给集合A和B,求A与B的并集C(C=A∪B)。
4、实验原理
因为并集的定义为:
C={x|x∈A∨x∈B},所以,只要将集合A与B合在一起就得到了并集C。
但是,在一个集合中,同样的元素没必要出现两次或两次以上,所以,在将集合A送入并集C后,应将集合B中与A中相同的元素删除,再将集合B送入并集C之中。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习集合运算中交集的定义,实验由一人一组完成。
所编程序能够通过编译,并能够实现求两个给定集合的并运算。
7、实验步骤及注意事项
(1)集合B的元素个数送M,集合A的元素个数送N。
(2)A
C。
(3)1
i。
(4)若i>M,则结束。
(5)否则,对于j=1,2,…….,n,判断:
bi=aj,若相等,则转(7)。
(6)否则,bi
C。
(7)i+1
i,转(4)。
8、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序求给定集合A和B的并集。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验二求集合的运算——交运算
1、实验类型:
基础实验
2、实验目的
通过编程实现求给定集合A和B的交集C(C=A∩B)的运算。
3、实验内容
已知所给集合A和B,求A与B的交集C(C=A∩B)
4、实验原理
根据交集的定义:
C={x|x∈A∧x∈B},我们将集合A的各个元素与集合B的元素进行比较,若在集合B中存在某个元素并和集合A中一元素相等,则将该元素送入交集C之中。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习集合运算中交运算的定义,实验由一人一组完成。
所编程序能够通过编译,并能够实现求两个给定集合的交运算。
7、实验步骤及注意事项
(1)将集合A的元素送N。
(2)1
i
(3)若i>N,则结束。
(4)否则,将ai与集合B中的每个元素进行比较,若ai与集合B中所有元素均不相同,则转(6)。
(5)否则,ai
C。
(6)i+1
i,转(3)。
8、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序给定集合A和B的交集。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验三求集合的运算——差运算
1、实验类型:
基础实验
2、实验目的
通过编程实现求给定集合A和B的差集C(C=A-B)的运算。
3、实验内容
已知所给集合A和B,求A与B的差集C(C=A-B)。
4、实验原理
差集C的定义:
差集C={x|x∈A∧x
B},即对于集合A中的元素ai,若不存在bj∈B(j=1,2,…..,m),使得ai=bj,则ai∈差集C。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习集合运算中差集的定义,实验由一人一组完成。
所编程序能够通过编译,并能够实现求两个给定集合的差集。
7、实验步骤及注意事项
(1)将集合A的元素个数送N。
(2)1
i。
(3)i>N,则结束。
(4)否则,将ai与集合B中的每个元素相比较,若ai与集合B中的某个元素相同,则转(6)。
(5)否则,ai
C。
(6)i+1
i,转(3)。
8、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序给定集合A和B的差集。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验四求集合的笛卡儿乘积
1、实验类型:
设计实验
2、实验目的
通过编程实现求给定集合A和B的笛卡儿乘积C(C=A×B)的运算。
3、实验内容
已知所给集合A和B,求A与B的笛卡儿乘积C(C=A×B)。
4、实验原理
笛卡儿乘积是以有序偶为元素组成的集合,它的定义为C={
所以,欲求笛卡儿乘积。
只需取尽由集合A的元素及集合B的元素,并构成序偶
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习笛卡儿乘积的定义,实验由一人一组完成。
所编程序能够通过编译,并能够实现求两个给定集合的笛卡儿乘积。
7、实验步骤及注意事项
(1)将集合A的元素个数送入N。
(2)将集合B的元素个数送入M。
(3)1
i。
(4)若i>N,则结束。
(5)1
j。
(6)若j>M,则转(9)。
(7)
C。
(8)j+1
j,转(6)。
(9)i+1
i,转(4)。
8、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序给定集合A和B的交集。
(3)写出实验结束时的程序清单及运行结果及实验总结。
9、思考题
如何编程实现求有限个集合(集合的个数大于2)的笛卡尔乘积。
实验五判断关系R是否为自反关系
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现对给定集合上的关系是否为自反关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。
3、实验内容
已知关系R由关系矩阵M给出,要求判断由M表示的这个关系是否为自反关系。
4、实验原理
从给定的关系矩阵来断判关系R是否为自反是很容易的。
若M(R的关系矩阵)的主对角线元素均为1,则R是自反关系;若M(R的关系矩阵)的主对角线元素均为0,则R是反自反关系;若M(R的关系矩阵)的主对角线元素既有1又有0,则R既不是自反关系也不是反自反关系。
本算法可以作为判等价关系算法的子程序给出。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习关系的性质,实验由一人一组完成。
所编程序能够通过编译,并能够实现对给定集合上的关系自反性质的判定。
7、实验步骤及注意事项
(1)输入关系矩阵M(M为n阶方阵)。
(2)判断自反性,对于i=1,2,….,n;若存在mii=0,则R不是自反的;若存在mii=1,则R是自反的;否则R既不是自反关系也不是反自反关系。
(3)输出判断结果。
8、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序判断给定集合上的关系是否为自反的。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验六判断关系R是否为对称关系
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现对给定集合上的关系是否为对称关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。
3、实验内容
已知关系R由关系矩阵M给出,要求判断由M表示的这个关系是否为对称关系。
4、实验原理
从给定的关系矩阵来判断关系R是否为对称是很容易的。
若M(R的关系矩阵)为对称矩阵,则R是对称关系;若M为反对称矩阵,则R是反对称关系。
因为R为对称的是等价关系的必要条件,所以,本算法可以作为判等价关系算法的子程序给出。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习关系的性质,实验由一人一组完成。
所编程序能够通过编译,并能够实现对给定集合上的关系对称性质的判定。
7、实验步骤及注意事项
(1)输入关系矩阵M(M为n阶方阵);
(2)判断对称性,对于i=2,3,….,n;j=1,2,……,i-1,若存在mij=mji,则R是对称的;
(3)判断反对称性;
(4)判断既是对称的又是反对称的;
(5)判断既不是对称的又不是反对称的;
(6)输出判断结果。
8、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序判断给定集合上的关系是否为对称的。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验七判关系R是否为可传递关系
1、实验类型:
设计性
2、实验目的
通过算法设计并编程实现对给定集合上的关系是否为传递关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。
3、实验内容
已知关系R由关系矩阵M给出,要求判断由M表示的这个关系是否为传递关系。
4、实验原理
一个关系R的可传递性定义告诉我们,若关系R是可传递的,则必有:
mik=1∧mkj=1
mij=1。
这个式子也可改写成为:
mij=0
mik=0∨mkj=0。
我们可以根据后一个公式来完成判断可传递性这一功能的。
可传递性也是等价关系的必要条件,所以,本算法也可以作为判等价关系算法的子程序给出。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习关系的性质,实验由一人一组完成。
所编程序能够通过编译,并能够实现对给定集合上的关系传递性质的判定。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)设计出类c的算法并编写一个程序判断给定集合上的关系是否为传递的。
(3)写出实验结束时的程序清单及运行结果及实验总结。
8、思考题
写出另一种判断关系传递性的算法,即在M(R·R)中,若任意r′ij=1,则MR中相应的元素rij=1,并据此设计出关系传递性质判断的程序。
实验八判断关系R是否为等价关系
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现对给定集合上的关系是否为自反的、对称的和传递关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断等价关系的方法。
3、实验内容
给定R的关系矩阵,据此判断所给关系R是否为等价关系。
4、实验原理
设R为非空集合A上的关系.如果R是自反的、对称的和传递的,则称R为A上的等价关系。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习关系的性质,实验由几个人一组完成。
所编程序能够通过编译,并能够实现对给定集合上的关系性质的判定。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序判断给定集合上的关系是否为等价关系。
(3)写出实验结束时的程序清单及运行结果及实验总结。
8、思考题
设计一个程序,求出对给定的有限集合的所有划分。
实验九求等价类
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现对给定集合上的关系是否为自反的、对称的和传递关系的判断,加深学生对等价关系和等价类的理解,掌握求等价类的方法。
3、实验内容
给定一个集合A,及其上的一个等价关系R,求R上的等价类。
4、实验原理
给定任意关系,欲判断R是否为等价关系,可用实验八所给出的程序。
但是,如果给定一个等价关系,那么它的关系矩阵必为对称矩阵。
为了节省存储空间,只要存放关系矩阵的一半就可以了(另一半与这一半相同)。
我们可以用一维数组来存放关系矩阵的下三角矩阵(包括主对角线在内),具体对应关系如下:
根据等价类的定义可知,等价类内的各元素之间均有R关系,所以在构造等价类时,只要依据所给关系矩阵,把所有相互有R关系的各元素归为一类就可以了。
在输出时,把每一类显示在同一行上。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习等价关系和等价类的定义,实验由几个人一组完成。
所编程序能够通过编译,并能够实现求出给定集合上等价关系的等价类。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序求出给定集合上的等价关系的等价类。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验十由两个已知关系通过合成构造新的关系
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现求对给定的关系的合成关系,加深学生对合成关系运算的理解。
3、实验内容
设关系A是从集合X={1,2,….,n}到集合Y={1,2,…..,m}的二元关系,而关系B是从集合Y到集合Z={1,2,….,p}的二元关系,求A与B的合成关系C。
4、实验原理
由关系合成的定义可知:
A
B={
若用关系矩阵来表示关系,则关系的合成运算类似于数值矩阵的乘法。
不同的是用“∧”代替乘,用“∨”代替加。
其中,0∨0=0,0∧0=0,0∨1=1,0∧1=0,1∨0=1,1∧0=0,1∨1=1,1∧1=1
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习关系合成的定义,实验由一人一组完成。
所编程序能够通过编译,并能够实现求给定集合上的关系的合成的运算。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)设计出类c的算法并编写一个程序求出给定的两个关系的合成关系。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验十一关系的闭包运算
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现求给定关系的各种闭包运算,加深学生对闭包运算的概念的理解。
3、实验内容
给定关系R,求R的自反闭包及R的对称闭包。
4、实验原理
若关系R的关系矩阵为M,而自反闭包为A(即r(R)=A),对称闭包为B(即S(R)=B),则A=M∨IB=M∨MT其中,I为恒等矩阵,MT为M的转置矩阵。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
复习关系闭包的定义,实验由几人一组完成。
所编程序能够通过编译,并能够实现求出给定关系的闭包的运算。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)写出类c的算法并编写一个程序求出给定关系的闭包。
(3)写出实验结束时的程序清单及运行结果及实验总结。
8、思考题
设计出求关系R的传递闭包的Warshall算法的程序。
实验十二求满射函数
1、实验类型:
操作性
2、实验目的
通过算法设计并编程实现求出从集合A到B上的所有满射函数的个数,加深学生对函数性质的理解。
3、实验内容
设A、B为有限集合,且|A|=m,|B|=n,求出从集合A到B的所有满射函数个数。
4、实验原理
从A到B的满射函数定义为:
设f:
A→B,若ranf=B,则称f:
A→B是满射的(或称为映到的),函数f为满射的必要条件是|A|≥|B|。
否则就不是满射函数了。
对于所给的问题,可以使用公式:
F=
·
-
·
+
·
-…….+
·
来求得其解。
但是在这儿,我们也可以使用计算机中常用的一种方法——枚举法来求解。
枚举法就是一个个的列出所有满足条件的函数,并将其记录下来,当枚举结束时就可得到欲求函数的数目。
对于上面提出的问题,相当于把n个不同的数字放到m个位置上去的所有不同的方法。
其中,数字是可重复出现的,但是每个数字必须都出现过至少一次才是满射函数。
5、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
6、实验要求
预习函数的定义和函数的性质,实验由几人一组完成。
所设计的程序能够通过编译,并能够实现求从集合A到B上的所有满射函数的个数。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)设计出类c的算法并编写一个程序求出从集合A到B上的所有满射函数的个数。
(3)写出实验结束时的程序清单及运行结果及实验总结。
8、思考题
设计出一个类c的算法,并编写一个程序求出从集合A到B上的所有单射函数的个数。
实验十三命题逻辑实验一——构造命题公式的真值表
1、实验类型:
验证性
2、实验目的:
使学生熟练掌握利用计算机语言实现逻辑运算的基本方法。
3、实验内容
对给出的任意一个命题公式(不超过四个命题变元),使学生会用C语言的程序编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。
4、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
5、实验要求
⑴学生在实验操作过程中自己动手独立完成,几人为1组。
⑵利用C语言或其他计算机语言编出基本逻辑运算程序和实现较复杂的命题公式真值表的程序。
⑶完成实验报告。
6、实验步骤及注意事项
(1)逻辑联结词的定义方法
逻辑连接词“非”
逻辑连接词“合取”
逻辑连接词“析取”
逻辑连接词“蕴涵”
逻辑连接词“等值”
(2)命题公式的表示方法
给出任意一个命题公式,我们可以将它用C程序表示出来,并且能够计算它在各组真值指派下所应有的真值(或是逻辑运算的结果)。
这有多种方法。
上面我们已经给出了逻辑连结词的定义,根据这种定义方法,我们也可以把一个命题公式表示成为条件语句中的条件表达式,这样我们就可以得到该命题公式的逻辑运算结果了。
(3)构造任意命题公式的真值表
给出任意变元(不超过四个命题变元)的合式公式,构造该命题公式的真值表。
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)设计出类c的算法并编写一个程序求出从集合A到B上的所有满射函数的个数。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验十四命题逻辑实验二——三个老师问题
1、实验类型:
设计性
2、实验目的:
使学生熟练掌握利用计算机语言实现逻辑运算的基本方法和增强逻辑推理能力。
3、实验内容
三个老师问题:
已知A,B,C3人是小学老师,各教两门课,互不重复,共有如下六门课。
语文、数学、政治、地理、音乐和美术,已经知道:
–政治老师和数学老师是邻居
–地理老师比语文老师年龄大
–B最年轻
–A经常给地理老师和数学老师讲他看过的文学作品
–B经常和音乐老师、语文老师一起游泳
要求:
编程判断A,B,C各教哪门课
4、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
5、实验要求
⑴学生在实验操作过程中自己动手独立完成,几人为1组。
⑵利用C语言或其他计算机语言编出基本逻辑运算程序和实现较复杂的命题公式真值表的程序。
⑶完成实验报告。
6、实验步骤及注意事项
(1)变量的存储:
总的有六门课程,按顺序排列为“语文、数学、政治、地理、音乐和美术”,设置六个变量x1,x2,x3,x4,x5,x6表示教这六门课程的老师,如,如果x3='A'表示A老师教政治。
(2)可以根据题目给出的条件写出条件表达式:
cc1=(x2!
=x3); //政治老师和数学老师是邻居
cc2=(x4!
=x1); //地理老师比语文老师年龄大
cc3=(x4!
='A');//A经常给地理老师和数学老师讲他看过的文学作品
cc4=(x2!
='A');
cc5=(x4!
=x2);
cc6=(x5!
='B');//B经常和音乐老师、语文老师一起游泳
cc7=(x1!
='B');
cc8=(x5!
=x1);
cc9=(x4!
='B');//B最年轻
7、实验报告要求
(1)写出实验过程中遇到的问题及其解决过程。
(2)设计出类c的算法并编写一个程序求出从集合A到B上的所有满射函数的个数。
(3)写出实验结束时的程序清单及运行结果及实验总结。
实验十五判断是否为代数系统的算法
1、实验类型:
设计实验
2、实验目的
通过算法设计并编程实现加深学生对代数系统的定义的理解。
3、实验内容
给定一个数字集合X={0,1,…..,n},并给出一个运算*(*运算由运算表给出),要求能够判断出:
(1)
(2)*运算是否是可交换的。
(3)*运算是否是可结合的。
4、实验仪器设备或软件环境及工具
长春工业大学计算机科学与工程学院计算机与信息综合实验中心提供相关软、硬件环境;学生也可自带实验设备。
5、实验要求
复习代数系统的定义,实验由几人一组完成。
所编程序能够通过编译,并能够对给定的一个数字集合X={0,1,…..,n}与一个运算*(*运算由运算表给
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散数学 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)