离散数学集合的运算实验报告
离散数学实验报告
“离散数学”实验报告目录一、实验目的 (3)二、实验内容 (3)三、实验环境 (3)四、实验原理和实现过程(算法描述) (3)1、实验原理........................................................................................................2、实验过程.......................................................................................................五、实验数据及结果分析 (13)六、源程序清单 (24)源代码 (24)七、其他收获及体会 (45)一、实验目的实验一:熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。
实验二:掌握关系的概念与性质,基本的关系运算,关系的各种闭包的求法。
理解等价类的概念,掌握等价类的求解方法。
实验三:理解图论的基本概念,图的矩阵表示,图的连通性,图的遍历,以及求图的连通支方法。
二、实验内容实验一:1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。
(A)2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C))实验二:1.求有限集上给定关系的自反、对称和传递闭包。
(有两种求解方法,只做一种为A,两种都做为B)2. 求有限集上等价关系的数目。
(有两种求解方法,只做一种为A,两种都做为B)3. 求解商集,输入集合和等价关系,求相应的商集。
(C)实验三:以偶对的形式输入一个无向简单图的边,建立该图的邻接矩阵,判断图是否连通(A)。
并计算任意两个结点间的距离(B)。
对不连通的图输出其各个连通支(C)。
三、实验环境C或C++语言编程环境实现。
四、实验原理和实现过程(算法描述)实验一:1.实验原理(1)合取:二元命题联结词。
离散实验报告
离散实验报告专业:数学与应用数学班级:091121学号:2009112125姓名:张鼎珩日期:2011.06.23实验内容:实验一真值计算实验二两个集合运算实验三关系闭包计算实验四关系与函数进行试验:实验一真值计算一、实验目的熟悉联结词合取、析取、条件和双条件的概念,编程求其真值。
二、实验内容(1)求任意一个命题公式的真值表:从键盘输入两个命题P 和Q的真值,求它们的合取、析取、蕴含和等价的真值(2)利用真值表求任意一个命题公式的主范式(3)利用真值表进行逻辑推理三实验程序:#include<stdio.h>/*标准输入输出头文件*/#include<stdlib.h>/*该文件包含了的C语言标准库函数的定义*/#include<string.h>/*字符串数组的函数定义的头文件*/#include<conio.h>/*通用输入输出库*/#include<math.h>#define N 50void jisuan();void zhenzhibiao();void panduan(int b[N],int f);int tkh (char sz[N], char ccu[N], int icu[N], int h0);int fkh (char sz[N], char ccu[N], int icu[N], int h0);main(){int a1;start:do{printf(" 1.求P、Q的合取、析取、条件和双条件的真值\n 2.求任意一个命题公式的真值表,并根据真值表求主范式\n 3.退出\n");printf("\n选择功能选项:");fflush(stdin);/*清空输入缓冲区,通常是为了确保不影响后面的数据读取*/scanf("%d",&a1);switch(a1)/*switch语句实现选择功能*/{case 1:system("cls");jisuan();break;/*功能A*/case 2:system("cls");fflush(stdin);zhenzhibiao();break;/*功能BC*/case 3:system("exit");exit(0);/*结束整个程序的运行*/default:system("cls");goto start;/*控制流转移到start处*/}}while(1);}void jisuan()/*功能A*/{char p,q,t,ch;int p1,q1;do{start:fflush(stdin);printf("请输入P和Q的真值(T或F):");scanf("%c,%c",&p,&q);if((p=='F'||p=='f'||p=='T'||p=='t')&&(q=='F'||q=='f'||q=='T'||q=='t')){if(p=='F'||p=='f')/*赋值*/p1=0;elsep1=1;if(q=='F'||q=='f')q1=0;elseq1=1;if(p1|q1)/*计算*/t='T';elset='F';printf("P析取Q为:%c\n",t);if(p1&q1)t='T';elset='F';printf("P和取Q为:%c\n",t);if((!p1)|q1)t='T';elset='F';printf("P条件Q为:%c\n",t);if(p1==q1)t='T';elset='F';printf("P双条件Q为:%c\n",t);}else{printf("请按正确格式输入!\n");goto start;};printf("是否继续输入?Y/N");fflush(stdin);ch=getch();system("cls");}while(ch!='n'&&ch!='N');}void zhenzhibiao()/*功能BC*/{int i1,i2,d=1,icu[N],kh=0,jg,j=0,h0;int bj=0,hq[N],h=0,x=0,xq[N];char sz[N],ccu[N],sz0[N];hq[0]=-1;xq[0]=-1;printf("请输入一个合法的命题公式(可含与或非及括号):\n");gets(sz);strcpy(sz0,sz);for(i1=0;i1<strlen(sz);i1++){if(sz[i1]==')' || sz[i1]=='(')kh++;if(sz[i1]>='a' && sz[i1]<='z' || sz[i1]>='A' && sz[i1]<='Z'){for(i2=0;i2<j;i2++) /*判断并储存变量*/if(ccu[i2]==sz[i1])d=0;if(d==1){ccu[j]=sz[i1];j++;}d=1;}}printf("\n该式子中的变量个数为:%d\n",j);h0=j;printf("\n输出真值表如下:\n \n");for(i1=0;i1<h0;i1++)printf(" %c ",ccu[i1]);printf(" ");puts(sz);printf("\n");for(i1=0;i1<j;i1++) /*先将所有的变量赋值为零*/icu[i1]=0;for(i2=0;i2<j;i2++)printf(" %d ",icu[i2]);jg=tkh(sz,ccu,icu,h0);if(jg==0)hq[h++]=bj;elsexq[x++]=bj;printf(" ------> %d\n",jg);strcpy(sz,sz0);for(i1=0;i1<(int)pow(2,j)-1;i1++){++bj;panduan(icu,0); /*赋值变量*/jg=tkh(sz,ccu,icu,h0);if(jg==0)hq[h++]=bj;elsexq[x++]=bj;strcpy(sz,sz0); /*恢复被修改的数组*/for(i2=0;i2<j;i2++)printf(" %d ",icu[i2]);printf(" ------> %d\n",jg);}if(hq[0]==-1)printf("\n该命题公式不存在主合取范式。
离散实验报告_幂集
一、实验目的1. 理解幂集的概念,掌握幂集的运算规则;2. 掌握幂集在实际问题中的应用;3. 培养逻辑思维能力和编程能力。
二、实验原理幂集是指一个集合中所有子集的集合,记作P(A)。
对于任意集合A,其幂集P(A)的元素个数等于2的A的元素个数次方。
设集合A={a1, a2, ..., an},则其幂集P(A)包含以下元素:1. 空集∅;2. 单元素集合{a1},{a2},...,{an};3. 两个元素组成的集合,如{a1, a2},{a1, a3},...,{an-1, an};4. ...;5. n个元素组成的集合,即A本身。
幂集的运算规则如下:1. 交换律:P(A) = P(B);2. 结合律:(P(A) ∩ P(B)) ∩ P(C) = P(A ∩ B) ∩ P(C);3. 分配律:P(A) ∪ (P(B) ∩ P(C)) = (P(A) ∪ P(B)) ∩ (P(A) ∪ P(C))。
三、实验内容1. 定义一个集合A;2. 求集合A的幂集P(A);3. 分析幂集在实际问题中的应用。
四、实验步骤1. 定义集合A,例如:A = {1, 2, 3};2. 编写程序计算幂集P(A);3. 分析幂集P(A)的元素;4. 应用幂集解决问题。
五、实验结果以集合A = {1, 2, 3}为例,其幂集P(A)为:P(A) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}六、实验分析1. 幂集P(A)包含8个元素,即2^3 = 8,符合幂集的定义;2. 幂集P(A)的元素包括空集、单元素集合、两个元素组成的集合以及A本身;3. 幂集在实际问题中具有广泛的应用,例如:在计算机科学中,集合的幂集可以用于描述数据结构、算法设计等;在数学中,幂集可以用于研究集合论、拓扑学等。
七、实验总结通过本次实验,我们掌握了幂集的概念和运算规则,并了解了幂集在实际问题中的应用。
第二次离散实验报告
“离散数学”实验报告(实验1)专业网络工程班级网133学号139074337姓名李阳一.实验目的;本实验课程是计算机专业学生的一门专业基础课程,通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。
熟悉掌握集合中的交、并、相对补、对称差、笛卡尔乘积、以及集合间的关系运算等,进一步能用它们来解决实际问题。
二.实验内容;从键盘输入两个集合A和B的元素,求它们的交∩、并∪、相对补-、对称差(+)、笛卡尔乘积×、以及集合间的关系复合运算×三. 实验原理;1.实验原理(1)交:A∩B={x|x∈A∧x∈B}对于集合A和集合B,由即属于A又属于B的所有元素所组成的集合,。
(2)并:A∪B={x|x∈A∨x∈B}若A和B是集合,则A和B并集是有所有A的元素或所有B的元素,而没有其他元素的集合。
(3)相对补:B - A = { x| x∈B,x∉A}A -B = { x| x∈A,x∉B}若 A 和 B 是集合,则 A 在 B 中的相对补集,或叫做 B 和 A 的集合论差,是这样一个集合,其元素属于 B,但不属于 A。
(4)对称差:A(+)B={x|x∈A∪B,x∉A∩B}A(+)B=(A∪B)—(A∩B)A(+)B=(A—B)∪(B—A)集合A与集合B中所有不属于A∩B的元素的集合。
(5)笛卡尔乘积:AxB={<x,y>|x∈A∧y∈B}设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作AxB. (6)求集合间关系的复合运算:RoS=})S∧<{>∈>∈<>∃<x,Ry,zyz|y(x,设R是X到Y的关系,S是Y到Z的关系,则RoS称为R和S的复合关系。
离散数学实验报告(两篇)
引言:离散数学是一门基础性的数学学科,广泛应用于计算机科学、电子信息等领域。
本文是《离散数学实验报告(二)》,通过对离散数学实验的深入研究和实践,总结了相关的理论知识和应用技巧,希望能够对读者对离散数学有更加深入的理解。
概述:本实验主要涉及离散数学中的集合、关系、图论等基本概念及其应用。
通过对离散数学的实验学习,深入掌握了这些概念和应用,对于在实际问题中的应用和拓展具有重要的意义。
正文内容:一、集合相关概念及应用1.定义:集合是由元素组成的无序的整体。
介绍了集合的基本概念、集合的表示法以及集合的运算。
2.集合的应用:介绍了集合在数学、计算机科学中的应用,如数据库的查询、关系代数等。
二、关系相关概念及应用1.定义:关系是一个元素与另一个元素之间的对应关系。
介绍了关系的基本概念、关系的表示方法及其运算。
2.关系的应用:介绍了关系在图像处理、社交网络分析等领域的应用,如图像中的像素点之间的关系、社交网络中用户之间的关系等。
三、图论基础知识及应用1.定义:图是由顶点和边组成的抽象的数学模型。
介绍了图的基本概念、图的表示方法和图的运算。
2.图论的应用:介绍了图论在路由算法、电子商务等领域的应用,如路由器的路由选择、电子商务中的商品推荐等。
四、布尔代数的概念及应用1.定义:布尔代数是一种基于集合论和逻辑学的代数系统。
介绍了布尔代数的基本概念、布尔表达式及其化简方法。
2.布尔代数的应用:介绍了布尔代数在电路设计、开关控制等方面的应用,如逻辑门电路的设计、开关控制系统的建模等。
五、递归的概念及应用1.定义:递归是一种通过调用自身来解决问题的方法。
介绍了递归的基本原理、递归的应用技巧。
2.递归的应用:介绍了递归在算法设计、树的遍历等方面的应用,如快速排序算法、树结构的遍历等。
总结:通过本次离散数学的实验学习,我深入掌握了集合、关系、图论等基本概念与应用。
集合的应用在数据库查询、关系代数等方面起到了重要的作用。
关系的应用在图像处理、社交网络分析等领域有广泛的应用。
离散数学实验报告求集合的运算——并运算
【实验目的】通过编程实现求给定集合A和B的并集C(C=A∪B)的运算。
【实验内容】已知所给集合A和B,求A与B 的并集C(C=A∪B)。
【实验原理】因为并集的定义为:C={x|x∈A∨x∈B},所以,只要将集合A与B合在一起就得到了并集C。
但是,在一个集合中,同样的元素没必要出现两次或两次以上,所以,在将集合A送入并集C后,应将集合B中与A中相同的元素删除,再将集合B送入并集C之中。
【程序代码】#include<stdio.h>int main(){int a[101],b[101],c[201]={0};int m,n;scanf("%d%d",&m,&n);for(int i=1;i<=m;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)scanf("%d",&b[i]);for(int i=1;i<=m;i++)c[i]=a[i];int i=m+1;int k;for(int j=1;j<=n;j++){int t=1;for(k=1;k<=m;k++){if(a[k]==b[j])t=0;}if(t==1){c[i]=b[j];i++;}}for(int i=1;i<=m+n;i++){if(c[i]!=0)printf("%d ",c[i]);}}【实验结果】【实验心得】首先想到的是数组,先将数组a[],赋值给c[],然后通过两层for循环来判断b[],是否与a[]重复,如若不重复,将b[]赋值给c[]。
在开始的时候由于for循环套错位置出错,后设置一flag来判断b[]和a[]是否有重复的元素。
安徽工业大学离散数学实验报告
《离散数学》实验报告专业软件工程班级163班姓名周掌珍学号169074261授课教师杨思春二 O 一七年六月目录实验一联结词的运算实验二集合的运算实验三二元关系的性质判定实验四图的矩阵运算实验一联结词的运算一.实验目的通过上机实验操作,将命题连接词运算融入到C语言的程序编写中,一方面加强对命题连接词运算的理解,另一方面通过编程实现命题连接词运算,帮助学生复习和锻炼C语言知识,将理论知识与实际操作结合,让学生更加容易理解和记忆命题连接词运算。
二.实验原理(1) 非运算, 符号:⎤ ,当P=T时,⎤P为F, 当P=F时,⎤P为T 。
(2) 合取, 符号: ∧ , 当且仅当P和Q的真值同为真,命题P∧Q的真值才为真;否则,P∧Q的真值为假。
(3) 析取, 符号: ∨ , 当且仅当P和Q的真值同为假,命题P∨Q的真值才为假;否则,P∨Q的真值为真。
(4) 异或, 符号: ▽ , 当且仅当P和Q的真值不同时,命题P▽Q的真值才为真;否则,P▽Q的真值为真。
(5) 蕴涵, 符号: →, 当且仅当P为T,Q为F时,命题P→Q的真值才为假;否则,P→Q 的真值为真。
(6) 等价, 符号: ↔, 当且仅当P,Q的真值不同时,命题P↔Q的真值才为假;否则,P→Q的真值为真。
三.实验内容编写一个程序实现非运算、合取运算、析取运算、异或运算、蕴涵运算、等价运算。
四.算法程序内容格式:新罗马,小五号,行间距固定值18磅#include<stdio.h>int main(){char m;int P,Q;printf("请输入P,Q的真值与逻辑连接词:(P逻辑联结Q)\na:与\tb:或\tc(请先输入0):非\td:蕴含\te:等价\tf:异或\n");scanf("%d%c%d",&P,&m,&Q);switch(m){case 'a': if(P==1&&Q==1) printf("P与Q=1\n");else printf("p合取Q=0\n");break;case 'b': if(P==0&&Q==0) printf("P或Q=0\n");else printf("P或Q=1\n");break;case 'c': if(P==1) printf("非P=0\n");else printf("非P=1\n");break;case 'd': if(P==1&&Q==0) printf("P蕴含Q=0\n");else printf("P蕴含Q=1\n");break;case 'e': if(P==Q) printf("P等价Q=1\n");else printf("P等价Q=0\n");break;case 'f': if(P==Q) printf("P异或Q=0\n");else printf("P异或Q=1\n");break;}五.实验结果实验结果截图大小为:宽(10cm)×高(8cm)六.心得体会内容格式:宋体,五号,行间距固定值18磅实验二集合的运算一.实验目的集合运算主要包括并运算,交运算,相对差,对称差运算,集合论的语言适合于描述和研究离散对象及其关系,所以也是计算机科学与工程的理论基础,在程序设计、关系数据库、排队论、开关理论,形式语言和自动机理论等学科领域中都有重要的应用。
离散数学实验报告
离散数学实验报告一、实验目的离散数学是现代数学的一个重要分支,它在计算机科学、信息科学、人工智能等领域有着广泛的应用。
本次离散数学实验的目的在于通过实际操作和编程实现,深入理解离散数学中的基本概念、原理和算法,提高解决实际问题的能力,培养逻辑思维和创新能力。
二、实验环境本次实验使用的编程语言为 Python,开发环境为 PyCharm。
同时,还使用了一些相关的数学库和工具,如 sympy 库用于符号计算。
三、实验内容1、集合运算集合是离散数学中的基本概念之一。
在实验中,我们首先定义了两个集合 A 和 B,然后进行了并集、交集、差集等运算。
通过编程实现这些运算,加深了对集合运算定义和性质的理解。
```pythonA ={1, 2, 3, 4, 5}B ={4, 5, 6, 7, 8}并集union_set = Aunion(B)print("并集:", union_set)交集intersection_set = Aintersection(B)print("交集:", intersection_set)差集difference_set = Adifference(B)print("A 与 B 的差集:", difference_set)```2、关系的表示与性质判断关系是离散数学中的另一个重要概念。
我们使用矩阵来表示关系,并通过编程判断关系的自反性、对称性和传递性。
```pythonimport numpy as np定义关系矩阵relation_matrix = nparray(1, 0, 1, 0, 1, 0, 1, 0, 1)判断自反性is_reflexive = all(relation_matrixii == 1 for i inrange(len(relation_matrix)))print("自反性:", is_reflexive)判断对称性is_symmetric = all(relation_matrixij == relation_matrixji for i in range(len(relation_matrix)) for j in range(len(relation_matrix)))print("对称性:", is_symmetric)判断传递性is_transitive = Truefor i in range(len(relation_matrix)):for j in range(len(relation_matrix)):for k in range(len(relation_matrix)):if relation_matrixij == 1 and relation_matrixjk == 1 and relation_matrixik == 0:is_transitive = Falsebreakprint("传递性:", is_transitive)```3、图的遍历图是离散数学中的重要结构。
离散数学(集合地运算)实验报告材料
民族学院计算机科学与工程学院实验报告实验题目:集合的运算课程名称:离散数学实验类型:□演示性□验证性□操作性□设计性□综合性专业:网络工程班级:网络111班学生:山学号:2011083123实验日期:2013年12月22日实验地点:I区实验机房实验学时:8小时实验成绩:指导教师签字:年月日老师评语:实验题目:集合的运算实验原理:1、实验容与要求:实验容:本实验求两个集合间的运算,给定两个集合A、B,求集合A与集合B 之间的交集、并集、差集、对称差集和笛卡尔乘积。
实验要求:对于给定的集合A、B。
用C++/C语言设计一个程序(本实验采用C++),该程序能够完成两个集合间的各种运算,可根据需要选择输出某种运算结果,也可一次输出所有运算结果。
2、实验算法:实验算法分为如下几步:(1)、设计整体框架该程序采取操作、打印分离(求解和输出分开)的思想。
即先设计函数求解各部分运算并将相应结果传入数组(所求集合)中,然后根据需要打印运算结果。
(2)、建立一个集合类(Gather)类体包括的数组a、b、c、d、e、f、g分别存储集合A、B以及所求各种运算的集合。
接口(实现操作的函数)包括构造函数,菜单显示函数,求解操作函数,打印各种运算结果等函数。
(3)、设计类体中的接口构造函数:对对象进行初始化,建立集合A与集合B。
菜单显示函数:设计提示选项,给使用者操作提示。
操作函数:该函数是程序的主题部分,完成对集合的所有运算的求解过程,并将结果弹入(存入)对应数组(集合)中,用于打印。
具体操作如下:1*求交集:根据集合集的定义,将数组a、b中元素挨个比较,把共同元素选出来,并存入数组c(交集集合)中,即求得集合A、B的交集。
2*求并集:根据集合中并集的定义,先将数组a中元素依次存入数组g(并集集合)中,存储集合A中某元素前,先将其与已存入g中的元素依次比较,若相同则存入下一个元素,否则直接存入g中,直到所有A中元素存储完毕。
离散实验报告集合运算
一、实验目的1. 理解集合的基本概念和运算;2. 掌握集合的交、并、差、补等运算方法;3. 通过编程实现集合运算,提高编程能力。
二、实验原理集合是数学中的一种基本概念,用于描述一组具有某种共同属性的元素。
集合的运算主要包括交、并、差、补等。
以下是对这些运算的简要介绍:1. 交集(∩):两个集合A和B的交集是指同时属于A和B的元素组成的集合。
2. 并集(∪):两个集合A和B的并集是指属于A或B或同时属于A和B的元素组成的集合。
3. 差集(-):两个集合A和B的差集是指属于A但不属于B的元素组成的集合。
4. 补集(∁A):集合A的补集是指全集U中不属于A的元素组成的集合。
三、实验内容1. 编写程序,实现以下集合运算:(1)输入两个集合A和B,输出它们的交集C。
(2)输入两个集合A和B,输出它们的并集C。
(3)输入两个集合A和B,输出它们的差集C。
(4)输入一个集合A和全集U,输出A的补集C。
2. 编写程序,验证以下性质:(1)交换律:A∩B = B∩A,A∪B = B∪A。
(2)结合律:A∩(B∩C) = (A∩B)∩C,A∪(B∪C) = (A∪B)∪C。
(3)分配律:A∩(B∪C) = (A∩B)∪(A∩C),A∪(B∩C) = (A∪B)∩(A∪C)。
四、实验步骤1. 定义一个函数用于输入集合,使用数组存储集合元素。
2. 定义一个函数用于计算两个集合的交集,使用嵌套循环遍历两个集合,将相同的元素添加到新集合中。
3. 定义一个函数用于计算两个集合的并集,使用嵌套循环遍历两个集合,将所有元素添加到新集合中。
4. 定义一个函数用于计算两个集合的差集,使用嵌套循环遍历两个集合,将属于A但不属于B的元素添加到新集合中。
5. 定义一个函数用于计算集合的补集,使用嵌套循环遍历全集和集合A,将不属于A的元素添加到新集合中。
6. 编写主函数,调用上述函数,输入集合,输出运算结果。
五、实验结果与分析1. 实验结果(1)输入集合A:{1, 2, 3, 4, 5},集合B:{3, 4, 5, 6, 7},输出交集C:{3, 4, 5}。
离散数学(集合的运算)实验报告
大连民族学院计算机科学与工程学院实验报告实验题目:集合的运算课程名称:离散数学实验类型:□演示性□验证性□操作性□设计性□综合性专业:网络工程班级:网络111班学生姓名:张山学号:2011083123实验日期:2013年12月22日实验地点:I区实验机房实验学时:8小时实验成绩:指导教师签字:年月日老师评语:实验题目:集合的运算实验原理:1、实验内容与要求:实验内容:本实验求两个集合间的运算,给定两个集合A、B,求集合A与集合B之间的交集、并集、差集、对称差集和笛卡尔乘积。
实验要求:对于给定的集合A、B。
用C++/C语言设计一个程序(本实验采用C++),该程序能够完成两个集合间的各种运算,可根据需要选择输出某种运算结果,也可一次输出所有运算结果。
2、实验算法:实验算法分为如下几步:(1)、设计整体框架该程序采取操作、打印分离(求解和输出分开)的思想。
即先设计函数求解各部分运算并将相应结果传入数组(所求集合)中,然后根据需要打印运算结果。
(2)、建立一个集合类(Gather)类体包括的数组a、b、c、d、e、f、g分别存储集合A、B以及所求各种运算的集合。
接口(实现操作的函数)包括构造函数,菜单显示函数,求解操作函数,打印各种运算结果等函数。
(3)、设计类体中的接口构造函数:对对象进行初始化,建立集合A与集合B。
菜单显示函数:设计提示选项,给使用者操作提示。
操作函数:该函数是程序的主题部分,完成对集合的所有运算的求解过程,并将结果弹入(存入)对应数组(集合)中,用于打印。
具体操作如下:1*求交集:根据集合中交集的定义,将数组a、b中元素挨个比较,把共同元素选出来,并存入数组c(交集集合)中,即求得集合A、B的交集。
2*求并集:根据集合中并集的定义,先将数组a中元素依次存入数组g(并集集合)中,存储集合A中某元素前,先将其与已存入g中的元素依次比较,若相同则存入下一个元素,否则直接存入g中,直到所有A中元素存储完毕。
最新离散数学集合运算C++或C语言实验报告
离散数学实验报告专业班级:12级计算机本部一班姓名:鲍佳珍学号:201212201401016 实验成绩:1.【实验题目】命题逻辑实验四2.【实验目的】掌握用计算机求集合的交、并、差和补运算的方法。
3.【实验内容】编程实现集合的交、并、差和补运算。
4、【实验要求】C或C++语言编程实现5.【算法描述】(1)用数组A,B,C,E表示集合。
假定A={1,3,4,5,6,7,9,10}, B={2,,3,4,7,8,10}, E={1,2,3,4,5,6,7,8,9,10}, 输入数组A,B,E(全集),输入数据时要求检查数据是否重复(集合中的数据要求不重复),要求集合A,B是集合E的子集。
以下每一个运算都要求先将集合C置成空集。
(2)二个集合的交运算:A⋂B={x|x∈A且x∈B}把数组A中元素逐一与数组B中的元素进行比较,将相同的元素放在数组C 中,数组C便是集合A和集合B的交。
C语言算法:for(i=0;i<m;i++)for(j=0;j<n;j++)if(a[i]= =b[j]) c[k++]=a[i];(3)二个集合的并运算:A⋃B={x|x∈A或x∈B}把数组A中各个元素先保存在数组C中。
将数组B中的元素逐一与数组A中的元素进行比较,把不相同的元素添加到数组C中,数组C便是集合A和集合B 的并。
C语言算法:for(i=0;i<m;i++)c[i]=a[i];for(i=0;i<n;i++){for(j=0;j<m;j++)if(b[i]= =c[j]) break;if(j= =m){ c[m+k]=b[i];k++;}}(4)二个集合的差运算:A-B={x|x∈A且x∉B}将数组A中的元素逐一与数组B中的元素进行比较,把数组A与数组B不同的元素保存在数组C中,数组C便是集合A和集合B的差A-B。
C语言算法:for (j=0;j<m;j++){ for (i=0;i<n;i++){ if (A[j]= =B[i]){ C[k]=A[j];k++;break; }if (j= =n){ C[k]=A[i];k++; } }(5)集合的补运算:~A=B-A={x|x∈B且x∉A}将数组E中的元素逐一与数组A中的元素进行比较,把不相同的元素保存到数组C中,数组C便是集合A关于集合E的补集。
离散2实验报告
长沙学院离散数学实验报告题目集合运算及关系运算系(部) 计算机科学与技术专业(班级) 计科01班姓名刘江惠学号指导教师朱志勇起止日期长沙学院课程设计鉴定表姓名刘江惠学号专业计科班级01 设计题目集合运算及关系运算指导教师朱志勇指导教师意见:评定等级:教师签名:日期:答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名:日期:系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;实验2:集合运算及关系运算1.实验目的:通过试验,了解集合运算有关概念及计算技术,掌握合成关系运算条件与运算特点。
2.实验类型:验证型实验3.实验学时:2学时4.实验原理及知识点:(1)交运算:设A,B是两个集合,则A∩B={x|(x A)并且(x B)}。
(2)并运算:设A,B是两个集合,则A∪B={x|(x A)或(x B)}。
(3)差运算:设A,B是两个集合,则A B={x|(x A)并且(x B)}。
(4)笛卡儿集合:设A,B是两个集合,称集合A×B={<x,y>|(x A)∧(y B)}为集合A与B的笛卡儿积。
(5)求子集或求幂集:设A有n个元素,则ρ(A)有2n个元素,证明A的所有由k个元素组成的子集个数为从n个元素中取k个元素的组合数。
(6)求关系合成运算:设R是X到Y的关系,S是Y到Z的关系,则RοS称为R和S的复合关系,定义为:RοS={ <x,z>∃∣y(<x,y>∈R∧<y,z>∈S)}。
5.实验内容及步骤:(1)编写操作界面,使用MFC提供的DLG类,在面板上添加两个输入文本框作为输入集合A、B的实例输入。
添加四个按钮分别表示求交集,求并集,求差集和求笛卡儿积。
(2)按照运算规则编写运算函数,在对应按钮的触发事件中添加对应的处理函数。
(3)编译程序,连调发现程序中存在的问题并修改。
离散数学实验报告求集合的运算——并运算
【实验目的】通过编程实现求给定集合A和B的并集C(C=A∪B)的运算。
【实验内容】已知所给集合A和B,求A与B 的并集C(C=A∪B)。
【实验原理】因为并集的定义为:C={x|x∈A∨x∈B},所以,只要将集合A与B合在一起就得到了并集C。
但是,在一个集合中,同样的元素没必要出现两次或两次以上,所以,在将集合A送入并集C后,应将集合B中与A中相同的元素删除,再将集合B送入并集C之中。
【程序代码】#include<stdio.h>int main(){int a[101],b[101],c[201]={0};int m,n;scanf("%d%d",&m,&n);for(int i=1;i<=m;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)scanf("%d",&b[i]);for(int i=1;i<=m;i++)c[i]=a[i];int i=m+1;int k;for(int j=1;j<=n;j++){int t=1;for(k=1;k<=m;k++){if(a[k]==b[j])t=0;}if(t==1){c[i]=b[j];i++;}}for(int i=1;i<=m+n;i++){if(c[i]!=0)printf("%d ",c[i]);}}【实验结果】【实验心得】首先想到的是数组,先将数组a[],赋值给c[],然后通过两层for循环来判断b[],是否与a[]重复,如若不重复,将b[]赋值给c[]。
在开始的时候由于for循环套错位置出错,后设置一flag来判断b[]和a[]是否有重复的元素。
离散数学实验报告
离散数学实验报告离散数学实验报告一、引言离散数学是现代数学的一个重要分支,它研究离散的数学结构和离散的数学对象。
本实验报告将介绍我对离散数学的学习和实践的一些心得体会。
二、集合论集合论是离散数学的基础,它研究集合及其运算。
在实验中,我学习了集合的表示方法和运算规则。
集合的表示方法有枚举法、描述法和图示法等。
集合的运算包括并、交、差和补等。
通过实践操作,我深刻理解了集合的概念和运算规则。
三、逻辑与命题逻辑是离散数学的另一个重要内容,它研究推理和思维的规律。
在实验中,我学习了逻辑的基本概念和符号表示法。
逻辑中的命题是逻辑推理的基本单位,它可以是真或假。
通过实践操作,我能够正确地分析和判断命题的真值,并进行逻辑推理。
四、关系与函数关系与函数是离散数学中的重要内容,它们描述了元素之间的联系。
在实验中,我学习了关系的定义和性质,包括自反性、对称性和传递性等。
函数是一种特殊的关系,它将一个集合的元素映射到另一个集合。
通过实践操作,我能够正确地定义和分析关系与函数。
五、图论图论是离散数学中的重要分支,它研究图及其性质。
在实验中,我学习了图的基本概念和表示方法。
图由顶点和边组成,可以分为有向图和无向图。
通过实践操作,我能够正确地定义和分析图的性质,如度、路径和连通性等。
六、组合数学组合数学是离散数学的另一个重要分支,它研究离散对象的组合和排列。
在实验中,我学习了组合数学的基本原理和方法。
组合数学中的排列和组合是常见的计数问题,通过实践操作,我能够正确地计算排列和组合的数量。
七、实践应用离散数学在计算机科学、通信工程和运筹学等领域有着广泛的应用。
在实验中,我了解了离散数学在实际问题中的应用。
例如,图论可以用于网络路由算法的设计,组合数学可以用于密码学中的加密算法设计。
通过实践操作,我能够将离散数学的知识应用到实际问题中,提高问题的解决效率。
八、总结通过本次离散数学实验,我深入了解了离散数学的基本概念和方法,并通过实践操作加深了对离散数学的理解。
集合运算 离散数学·实验报告
HUNAN UNIVERSITY 离散数学课程实验报告题目:集合运算学生姓名:学生学号:专业班级:完成日期:一.实验目的1.熟悉集合的交,并,差,对称差和直积等集合运算;2.使用c++语言工具解决集合的运算问题;二.实验内容编写程序实现集合的交,并,差,对称差和直积集合运算三.实验过程算法分析1.集合的交:使用两个字符串数组A和B存储两个集合,依次遍历两个数组,找到相同的元素,就输出该元素,直到两个数组都遍历完毕为止,输出的所有的元素就是这两个集合的交;2.集合的并:依次遍历这两个数组,在第二个数组中,若找到与第一个数组中的某个元素相同的元素时,在第二个数组中删除该元素,最后输出第一个数组和第二个数组的所有元素,得到的结果即集合的并;3.集合的差:遍历数组A和B,在数组A中,若找到与B中某一元素相同的元素,则在数组A中删除该元素,最后一次输出数组A即可;4.集合的对称差:定义一个新的字符串数组C,将A的值全部赋给C(C==A).。
遍历数组A和B,若在A中找到与B中某一元素相同的元素,则在A中删除该元素;遍历C与B,若在B中找到与C中某一元素相同的元素,则删除B中的该元素,最后依次遍历输出数组A和B即可;5.集合的直积:从数组A的第一个元素开始,每输出A中的一个元素的同时,对应输出B中所有的元素,中间用<,>连接,直到A中所有元素都输出完毕。
最后得到的序列便是A和B的直积流程图实验数据和分析测试数据:请输入第一个集合:a b 1 4请输入第二个集合:b g 4两个集合的交为:b 4两个集合的并为:a b 1 4 g第一个集合-第二个集合为:a 1两个集合的对称差为:a 1 g两个集合的直积为:<a,b> <a,g> <a,4> <b,b> <b,g> <b,4><1,b> <1,g> <1,4> <4,b> <4,g> <4,4>按照实验的算法设计程序,实现集合的各种基本运算。
中南大学离散数学实验报告(实验2ac)
“离散数学”实验报告(实验2AC)专业班级学号姓名日期:目录一、实验目的 (3)二、实验内容 (3)三、实验环境 (3)四、实验原理和实现进程(算法描述) (3)A题型 (3)C题型 (4)五、实验数据及结果分析 (7)A题型 (7)B题型 (9)六、源程序清单 (11)A题型 (11)B题型 (12)七、其他收成及体会 (18)一、实验目的把握关系的概念与性质,大体的关系运算,关系的各类闭包的求法。
明白得等价类的概念,把握等价类的求解方式。
二、实验内容1. 求有限集上给定关系的自反、对称和传递闭包。
(有两种求解方式,只做一种为A,两种都做为B)2. 求有限集上等价关系的数量。
(有两种求解方式,只做一种为A,两种都做为B)3. 求解商集,输入集合和等价关系,求相应的商集。
(C)三、实验环境C或C++语言编程环境实现。
四、实验原理和实现进程(算法描述)A题型求有限集上等价关系的数量。
集合上的等价关系与该集合的划分之间存在一一对应关系。
一个等价关系对应一个划分,一个划分也对应一个等价关系。
咱们把n个元素的集合划分成k 块的方式数叫第二类Stirling数,表示为S(n,k)。
给定S(n,n) = S(n,1) = 1,有递归关系:S(n,k) = S(n − 1,k − 1) + kS(n − 1,k)集合上所有等价类的个数即为k从1到n,所有S(n,k)之和。
那个问题的算法比较简单,仅需两步就可完成,第一依照上式,概念一个递归函数S(n,k),然后对k从1到n,求取sum=∑S(n,k),sum的值确实是给定n元集合上的等价关系数量,最后将其输出即可。
A题型的流程图如下所示:C题型求解商集,输入集合和等价关系,求相应的商集商集即等价类组成的集合,要求商集,第一需要判定输入的关系是不是为等价关系,不然没有商集。
判定输入的关系是不是为等价关系的算法如下:(1)将输入的关系转换为关系矩阵,那个地址概念了一个函数translate(),转换的方式为:依次查找输入的关系中的二元组的两个元素在集合中的位置,例如<a,b>,假设a在集合A中的位置为i,b在集合A中的位置为j,就令寄存关系矩阵的二维数组M[i][j]=1,如此就将输入的关系R转换为关系矩阵的形式。
中南大学离散数学实验报告(实验3ABC)
“离散数学”实验报告(实验3ABC)专业班级学号姓名日期: 2011.12.19目录一、实验目的 (3)二、实验内容 (3)三、实验环境 (3)四、实验原理和实现过程(算法描述) (3)1实验原理 (3)2实验过程 (5)五、实验数据及结果分析 (6)六、源程序清单 (10)七、其他收获及体会 (16)一、实验目的理解图论的基本概念, 图的矩阵表示, 图的连通性, 图的遍历, 以及求图的连通支方法。
二、实验内容以偶对的形式输入一个无向简单图的边, 建立该图的邻接矩阵, 判断图是否连通(A)。
并计算任意两个结点间的距离(B)。
对不连通的图输出其各个连通支(C)。
三、实验环境C或C++语言编程环境实现。
四、实验原理和实现过程(算法描述)1.实验原理(1)建立图的邻接矩阵, 判断图是否连通根据图的矩阵表示法建立邻接矩阵A, 并利用矩阵的乘法和加法求出可达矩阵, 从而判断图的连通性。
连通图的定义: 在一个无向图G 中, 若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径), 则称vi和vj是连通的。
如果G 是有向图, 那么连接vi 和vj的路径中所有的边都必须同向。
如果图中任意两点都是连通的, 那么图被称作连通图。
判断连通图的实现:在图中, 从任意点出发在剩余的点中, 找到所有相邻点循环, 直到没有点可以加入为止, 如果有剩余的点就是不连通的, 否则就是连通的。
或者也可用WallShell算法, 由图的邻接矩阵判断图是否连通。
(2)计算任意两个结点间的距离图中两点i, j间的距离通过检验Al中使得aij为1的最小的l值求出。
路径P中所含边的条数称为路径P的长度。
在图G<V,E>中, 从结点Vi到Vj最短路径的长度叫从Vi到Vj的距离, 记为d<Vi, Vj>。
设图的邻接矩阵是A, 则所对应的aij的值表示, 点Vi到点Vj距离为n的路径有aij条。
若aij(1), aij(2), …, aij(n-1), 中至少有一个不为0, 则可断定Vi与Vj可达, 使aij(l)≠0的最小的l即为d(Vi, Vj)。
离散数学实验二集合运算设计
实验2 集合运算设计一、实验目的熟悉并、交、差、对称差等运算,并编程设计。
二、实验内容在C语言中,有数组、结构体、共用体、枚举类型等用户自定义的复合型数据类型,但是并没有提供集合类型数据的定义以及集合的一些基本运算的实现。
为简单起见,这里,我们并不要求编写出专门的集合类型的数据类型及其基本运算,只要求用数组来存放集合中的元素,并设计其并、交、差、对称差等运算。
1. 对任意集合A,B,求它们的并集C=A∪B。
可以先将集合A中的元素全部送入集合C,然后将集合B中的元素送入集合C中,此时要注意与集合A相同的元素要跳过。
2. 对任意集合A,B,求它们的交集C=A∩B。
将集合A中与集合B中的相同的元素送入集合C中。
3. 对任意集合A,B,求它们的差集C=A-B。
将集合A的各个元素与集合B的元素进行比较,如果集合B的所有元素与之均不相等,则将该元素送入集合C中。
4. 对任意集合A,B,求它们的对称差C=A⊙B。
先将集合A的各个元素与集合B的元素进行比较,如果集合B的所有元素与之均不相等,则将该元素送入集合C中;然后将集合B的各个元素与集合A的元素进行比较,如果集合A的所有元素与之均不相等,则将该元素送入集合C中。
源代码:#include<stdio.h>int main(){int A[10],B[10],i,j=0,k; //假设集合A、B中分别有10个元素printf("请输入集合A的元素:\n");for(i=0;i<10;i++)scanf("%d",&A[i]);printf("请输入集合B的元素:\n");for(i=0;i<10;i++)scanf("%d",&B[i]);printf("集合A和集合B的并集为:");for(i=0;i<10;i++)printf("%d\t",A[i]); //先打印集合A中的元素(集合A中所有元素都存在该并集中)//开始查找B集合中A集合不存在的元素while(j<10){k=0;for(i=0;i<10;i++){if(B[j]!=A[i]) //B集合中每个元素都与集合A中所有元素进行比较k=k+1;}if(k==10) //只有k累加到10,才能证明B[j]存在于A集合中printf("%d\t",B[j]);j++; //检查下一个元素}printf("\n");printf("集合A和集合B的交集C为:");for(i=0;i<10;i++){for(j=0;j<10;j++)if(B[j]==A[i]){printf("%d\t",A[j]);break; //中断,无须查找了,缩短程序时间复杂度}}printf("\n");printf("集合A和集合B的差集C为:");j=0;while(j<10){k=0;for(i=0;i<10;i++){if(B[j]!=A[i])k=k+1;}if(k==10)printf("%d\t",B[j]); / /打印集合B中不存在集合A中的元素j++;}printf("\n");printf("集合A和集合B的对称差C为:");j=0;while(j<10){k=0;for(i=0;i<10;i++){if(B[j]!=A[i])k=k+1;}if(k==10)printf("%d\t",B[j]); / /打印集合B中不存在集合A中的元素j++;}j=0;while(j<10){k=0;for(i=0;i<10;i++){if(A[j]!=B[i])k=k+1;}if(k==10)printf("%d\t",A[j]); / /打印集合A中不存在集合B中的元素j++;}printf("\n");return 0;}运算结果截图:三、实验小结(本次实验的心得体会,字数不限)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连民族学院计算机科学与工程学院实验报告实验题目:集合的运算课程名称:离散数学实验类型:□演示性□验证性□操作性□设计性□综合性专业:网络工程班级:网络111班学生姓名:张山学号:2011083123实验日期:2013年12月22日实验地点:I区实验机房实验学时:8小时实验成绩:指导教师签字:年月日老师评语:1实验题目:集合的运算实验原理:1、实验内容与要求:实验内容:本实验求两个集合间的运算,给定两个集合A、B,求集合A与集合B之间的交集、并集、差集、对称差集和笛卡尔乘积。
实验要求:对于给定的集合A、B。
用C++/C语言设计一个程序(本实验采用C++),该程序能够完成两个集合间的各种运算,可根据需要选择输出某种运算结果,也可一次输出所有运算结果。
2、实验算法:实验算法分为如下几步:(1)、设计整体框架该程序采取操作、打印分离(求解和输出分开)的思想。
即先设计函数求解各部分运算并将相应结果传入数组(所求集合)中,然后根据需要打印运算结果。
(2)、建立一个集合类(Gather)类体包括的数组a、b、c、d、e、f、g分别存储集合A、B以及所求各种运算的集合。
接口(实现操作的函数)包括构造函数,菜单显示函数,求解操作函数,打印各种运算结果等函数。
(3)、设计类体中的接口构造函数:对对象进行初始化,建立集合A与集合B。
菜单显示函数:设计提示选项,给使用者操作提示。
操作函数:该函数是程序的主题部分,完成对集合的所有运算的求解过程,并将结果弹入(存入)对应数组(集合)中,用于打印。
具体操作如下:21*求交集:根据集合中交集的定义,将数组a、b中元素挨个比较,把共同元素选出来,并存入数组c(交集集合)中,即求得集合A、B的交集。
2*求并集:根据集合中并集的定义,先将数组a中元素依次存入数组g(并集集合)中,存储集合A中某元素前,先将其与已存入g中的元素依次比较,若相同则存入下一个元素,否则直接存入g中,直到所有A中元素存储完毕。
接着把b中元素依次存入数组g(并集集合)中,存储前将b中每个元素依次与已存入数组g中的集合A的元素比较,若数组g中没有与该元素相同的元素,则将该元素存入g(并集集合)中,否则进行下一次比较,直到所有b中元素比较并存储完毕,即求得A与B的并集。
3*求差集:根据集合中差集的定义知,差集分为两部分,A对B的差集(数组d)和B对A的差集(e)。
设计求解A对B的差集,将集合A中元素依次与B中元素比较,若B中无元素与该元素相同,则将其存入数组d中(同时删除d中相同的元素,操作方法与求并集时删除相同元素类似),否则进行下一轮比较,直到A中所有元素比较完毕,即求得A对B的差集(数组d)。
求解B对A的差集方法与求解A对B的差集类似,这里不再重复。
4*求对称差:根据集合中对称差集的定义,将3*中所求两部分差集求并集并存入数组f中即可。
操作过程与求并集相似,这里不再重复。
5*求笛卡尔乘积:根据集合中笛卡尔乘积集的定义,分为A*B和B* A。
先设计A* B是我算法,将a中元素循环依次与b中元素配对即可。
求B* A与求A* B 类似,这里不再重复。
实验步骤:一、分析实验阅读实验指导书和离散数学课本,充分理解整个实验的实验内容及要求,以便对实验进行科学的设计。
然后对整个实验进行“解剖”,即把整个实验系统地分成若干 3部分,分别针对各个部分进行分析,最后预测程序设计过程中可能遇到的问题及解决方案。
二、实验设计基于第一步的实验分析制定实验设计的整体方案,然在计算机上设计整体框架,接着依据最初得到的方案有序的设计该程序的各个分支。
最后将分支分别填入主体框架的相应位置,检查设计是否有书写错误。
没有则进行调试,有则修改。
重复上述过程,直到没有书写错误。
三、调试程序对第二步设计的程序进行编译链接,对多组具有代表性的数据进行测试,检查程序是否有逻辑错误和程序漏洞。
若无,则进行下一步程序优化,否则,续修改调试,直至没有逻辑错误和漏洞。
四、优化程序在前面设计的程序的基础上,查找是否有可以简化程序或是有缺陷的地方,亦或是否有可以添加的功能。
有,则进行相应的修改,对整个程序进行优化升级,直至趋于完善。
五、处理数据输入:4运行结果:六、对实验进行归纳、总结,撰写实验报告。
实验记录:一、集合初始化数据输入:1、第一行输入m2、第二行输入m个整数3、第三行输入n4、第四行输入n个整数5输入数据的含义:1、m:集合A的元素个数2、n:集合B的元素个数3、m个整数:集合A中的元素4、n个整数:集合B中的元素二、求解输入:使用者可以根据提示输入I、U、C、D、K、A、P、E。
其含义如下:1、I:输出交集2、U:输出并集3、C:输出差集4、D:输出对称差5、K:输出笛卡尔乘积6、A:输出所有集合运算结果7、P:打印集合A和集合B8、E:退出系统一、实验过程中遇到的问题及其解决过程实验过程遇到的问题很多,主要有一下问题。
首先是实验的分析,最初没有对实验原理理解透彻,在求差集的时候没考虑到A、B间相互求差集;于是在原有的基础上对程序添加缺少的部分。
其次是对整个程序的框架设计,最初设计是顺序求解并输出集合A、B的交、并、差、对称差及笛卡尔乘积。
但这种设计太低级,不能根据使用者的意愿求解集合的运算;于是对原来的程序上“大动干戈”,把它的整体结构做调整,将原来混合不清、顺序死板的设计改成操作、打印分离的“动态”结构。
第三是对数据的处理不够完善,比如在最初设计的程序中,当集合中含有相同元素时,程序不能完善处理,结果中会有重复元素。
于是在程序中添加一个删除相同元素的操作。
最后便是功能的完善问题了,相比最终程序,缺乏一些人性化的功能。
于是在相应位置添加功能,使程序完善。
6二、实验结束时的程序清单及运行结果结果还是比较完善的,试运行数据如下:输入:51 123 451 1 a b 5A输出:两个集合的交集是:1两个集合的并集是:1 2 3 4 5 a b c两个集合的差集A-B是:2 3 4两个集合的差集B-A是:a b 5两个集合的对称差集是:2 3 4 5 a b两个集合的笛卡尔乘积是:A*B:<1,1> <1,1> <1,a> <1,b> <1,5><1,1> <1,1> <1,a> <1,b> <1,5><2,1> <2,1> <2,a> <2,b> <2,5><3,1> <3,1> <3,a> <3,b> <3,5><4,1> <4,1> <4,a> <4,b> <4,5>B*A:<1,1> <1,1> <1,2> <1,3> <1,4><1,1> <1,1> <1,2> <1,3> <1,4><a,1> <a,1> <a,2> <a,3> <a,4>7<b,1> <b,1> <b,2> <b,3> <b,4><5,1> <5,1> <5,2> <5,3> <5,4>三、实验总结我选择的实验题目很简单,因此试验用时多,但通过实验的规划、各部分设计、以及整体的测试优化,不仅提高了我的程序设计水平,还让我对离散数学有了全新的认识,可谓是一举多得。
之前我一直以为数学就是在书本上写写算算,玩弄数字游戏,压根儿没想过离散数学也能在程序设计上大显身手。
这次试验让我再次体会到了设计算法的重要性和对细节的把握,而算法,就是对数据的处理。
那么就要求对所涉及的数学知识牢牢掌握,不能似是而非,不然设计的算法是残缺的。
甚至漏洞百出,因而放弃之前的算法推倒重来。
本学期已学过数据结构,可谓程序设计的法宝,运用的好可以得到简便高效的方案,一直是我写代码的不二法宝。
现在我才发现离散数学对计算机程序设计也非常重要。
它不仅介绍了数据结构里面的一些内容,还涉及数字逻辑等方面的的知识,掌握好离散数学我们就能快速地想出高效的解决方案。
终于理解入学时学长(姐)们说的“数据结构、离散数学和数字逻辑,是你们计算机生涯的必修课,走得有多远全看你对它们的掌握”。
8实验报告课程名称:离散数学集合的运算实验题目:实验类型:操作型指导老师:姜楠学院:计算机科学与工程学院专业:网络工程121班级:网络班姓名:张山2011083123学号:12年2013日期:月日22910。