文档库 最新最全的文档下载
当前位置:文档库 › 离散数学关系的闭包运算

离散数学关系的闭包运算

离散数学关系的闭包运算
离散数学关系的闭包运算

《离散数学》

实验报告

学院软件学院

专业软件工程

指导教师邹丽娜

学号10008118

姓名冯立勇

提交日期2011-12-25

实验二 关系的闭包运算

一 、实验目的

熟悉关系的闭包运算,编程实现关系闭包运算算法。 一 、实验内容

利用矩阵求解有限集上给定关系的自反、对称和传递闭包。 三. 实验过程 1. 算法分析:

在三种闭包中自反和对称闭包的求解很容易,对矩阵表示的关系,其自反闭包只要将矩阵的主对角线全部置为1就可;对称闭包则加上关系的转置矩阵(逻辑加法);传递闭包则有两种算法(二选一即可): 算法1:直接根据 n

i i

R

R t 1

)(==

计算,过程略。

算法2:Warshall 算法(1962)

设R 的关系矩阵为M (1)令矩阵A=M (2)置i=1

(3)对所有的j ,若A[j ,i]=1,则

对于 k=1,2,…,n ,令A[j ,k]=A[j ,k]+A[i ,k]

注:此处为逻辑加,可以使用运算符||

(4) i=i+l .

(5)若i ≤n ,则转到(3),否则结束. 流程图

2. 程序代码:

#include

void output(int s[][100]);

void zifan(int s2[][100]);

void duichen(int s2[][100]);

void chuandi2(int s2[][100]);

void chuandi1(int s2[][100]);

void aa();

int s[100][100],z;

int d,n ,i,j;

int main(){aa();return 0;}

void aa()

{

printf("请输入矩阵的行数(必须小于10)\n ");

scanf("%d",&n);

printf("请输入矩阵的列数(必须小于10)\n ");

scanf("%d",&d);

printf("请输入关系矩阵\n");

for(i=0;i

{ printf("\n");

printf("请输入矩阵的第%d行元素",i);

for(j=0;j

scanf("%d",&s[i][j]);

}

printf("输入对应序号选择算法\n1:自反闭包\n2:传递闭包1\n3:传递闭包(Warhall算法)2\n4:对称闭包\n");

scanf("%d",&z);

switch(z)

{

case 1:zifan(s); break;

case 2:chuandi1(s);break;

case 3:chuandi2(s);break;

case 4:duichen(s); break;

}

}

void output(int s[][100])

{printf("所求关系矩阵为\n"); for(i=0;i

{for(j=0;j

printf("%d",s[i][j]);

printf("\n");

}

}

void zifan(int s2[][100])

{

for(i=0;i

s2[i][i]=1;

output(s2);aa();

}

void duichen(int s2[][100])

{int s1[100][100];

for(i=0;i

for(j=0;j

s1[j][i]=s2[i][j];

for(i=0;i

for(j=0;j

{s2[i][j]=s2[i][j]+s1[i][j];

if(s2[i][j]>1)

s2[i][j]=1;

}

output(s2);

aa();

}

void chuandi1(int s2[][100]) {int m[100][100],a[100][100],k,h; int t[100][100];

for(i=0;i

for(j=0;j

{ a[i][j]=0;

t[i][j]=s2[i][j];

m[i][j]=s2[i][j];}

for(h=0;h

{for(i=0;i

for(j=0;j

if(m[i][j]==1)

{for(k=0;k

if(s2[j][k]==1)

a[i][k]=1;

}

for(i=0;i

for(j=0;j

{ m[i][j]=a[i][j];

t[i][j]+=a[i][j];

a[i][j]=0;

if(t[i][j]>1)

t[i][j]=1;

}

}

output(t);aa();

}

void chuandi2(int s2[][100]) {int k;

for(i=0;i

for(j=0;j

if(s2[j][i]==1)

for(k=0;k

for(i=0;i

for(j=0;j

if(s2[i][j]>1)

s2[i][j]=1;

output(s2);aa();

}

3.实验数据及结果分析

7离散数学(集合的运算)实验报告

大连民族学院 计算机科学与工程学院实验报告 实验题目:集合的运算 课程名称:离散数学 实验类型:□演示性□验证性□操作性□设计性□综合性专业:网络工程班级:网络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中元素存储完毕。接着把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类似,这里不再重复。 实验步骤: 一、分析实验 阅读实验指导书和离散数学课本,充分理解整个实验的实验内容及要求,以便对实验进行科学的设计。然后对整个实验进行“解剖”,即把整个实验系统地分成若干

离散数学知识点总结

离散数学知识点总结 一、各章复习要求与重点 第一章 集 合 [复习知识点] 1、集合、元素、集合的表示方法、子集、空集、全集、集合的包含、相等、幂集 2、集合的交、并、差、补等运算及其运算律(交换律、结合律、分配律、吸收律、 De Morgan 律等),文氏(V enn )图 3、序偶与迪卡尔积 本章重点内容:集合的概念、集合的运算性质、集合恒等式的证明 [复习要求] 1、理解集合、元素、子集、空集、全集、集合的包含、相等、幂集等基本概念。 2、掌握集合的表示法和集合的交、并、差、补等基本运算。 3、掌握集合运算基本规律,证明集合等式的方法。 4、了解序偶与迪卡尔积的概念,掌握迪卡尔积的运算。 [本章重点习题] P5~6,4、6; P14~15,3、6、7; P20,5、7。 [疑难解析] 1、集合的概念 因为集合的概念学生在中学阶段已经学过,这里只多了一个幂集概念,重点对幂集加以掌握,一是掌握幂集的构成,一是掌握幂集元数为2n 。 2、集合恒等式的证明 通过对集合恒等式证明的练习,既可以加深对集合性质的理解与掌握;又可以为第三章命题逻辑中公式的基本等价式的应用打下良好的基础。实际上,本章做题是一种基本功训练,尤其要求学生重视吸收律和重要等价式在B A B A ~?=-证明中的特殊作用。 [例题分析] 例1 设A ,B 是两个集合,A={1,2,3},B={1,2},则=-)()(B A ρρ 。 解 }}3,2,1{},3,2{},3,1{},2,1{},3{},2{},1{,{)(φρ=A }}2,1{},2{},1{,{)(φρ=B 于是}}3,2,1{},3,2{},3,1{},3{{)()(=-B A ρρ

离散数学关系性质的C++或C语言判断实验报告

1.【实验目的】 对称: 通过算法设计并编程实现对给定集合上的关系是否为对称关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法 自反: 通过算法设计并编程实现对给定集合上的关系是否为自反关系的判断,加深学生对关系性质的理解,掌握用矩阵来判断关系性质的方法。 2.【实验内容】 已知关系R 由关系矩阵M 给出,要求判断由M 表示的这个关系是否为对称关 系。假定R 的关系矩阵为:?????? ? ??=1234210330124321M 3.【实验要求】 C 语言编程实现 4.【算法描述】 对称: 从给定的关系矩阵来判断关系R 是否为对称是很容易的。若M (R 的关系矩阵)为对称矩阵,则R 是对称关系;若M 为反对称矩阵,则R 是反对称关系。因为R 为对称的是等价关系的必要条件,所以,本算法可以作为判等价关系算法的子程序给出。 算法实现: (1) 输入关系矩阵M (M 为n 阶方阵); (2) 判断对称性,对于i=2,3,….,n ;j=1,2,……,i-1,若存在m ij =m ji , 则R 是对称的; (3) 判断反对称性; (4) 判断既是对称的又是反对称的; (5) 判断既不是对称的又不是反对称的; (6) 输出判断结果。

自反: 从给定的关系矩阵来断判关系R是否为自反是很容易的。若M(R的关系矩阵)的主对角线元素均为1,则R是自反关系;若M(R的关系矩阵)的主对角线元素均为0,则R是反自反关系;若M(R的关系矩阵)的主对角线元素既有1又有0,则R既不是自反关系也不是反自反关系。本算法可以作为判等价关系算法的子程序给出。 算法实现 (1)输入关系矩阵M(M为n阶方阵)。 (2)判断自反性,对于i=1,2,….,n;若存在m =0,则R不是自反 ii =1,则R是自反的;否则R既不是自反关系也不是的;若存在m ii 反自反关系。 (3)输出判断结果。 源代码 #include void z(); void r(); void main() { int d; while(d) { printf("欢迎使用关系性质的判断系统\n\n 1. 对称关系的判断 2. 自反关系的判断\n\n请输入选项:"); scanf("%d",&d); switch(d){ case 1: r();break; case 2: z();break; case 0: break; }

离散数学公式

基本等值式 1.双重否定律A?┐┐A 2.幂等律 A ? A∨A, A ? A∧A 3.交换律A∨B ? B∨A,A∧B ? B∧A 4.结合律(A∨B)∨C ? A∨(B∨C) (A∧B)∧C ? A∧(B∧C) 5.分配律A∨(B∧C) ? (A∨B)∧(A∨C) (∨对∧的分配律) A∧(B∨C) ? (A∧B)∨(A∧C) (∧对∨的分配律) 6.德·摩根律┐(A∨B) ?┐A∧┐B ┐(A∧B) ?┐A∨┐B 7.吸收律 A∨(A∧B) ? A,A∧(A∨B) ? A 8.零律A∨1 ? 1,A∧0 ? 0 9.同一律A∨0 ? A,A∧1 ? A 10.排中律A∨┐A ? 1 11.矛盾律A∧┐A ? 0 12.蕴涵等值式A→B ?┐A∨B 13.等价等值式A?B ? (A→B)∧(B→A) 14.假言易位A→B ?┐B→┐A 15.等价否定等值式 A?B ?┐A?┐B 16.归谬论(A→B)∧(A→┐B) ?┐A 求给定公式范式的步骤 (1)消去联结词→、?(若存在)。 (2)否定号的消去(利用双重否定律)或内移(利用德摩根律)。 (3)利用分配律:利用∧对∨的分配律求析取范式,∨对∧的分配律求合取范式。 推理定律--重言蕴含式 (1) A ? (A∨B) 附加律 (2) (A∧B) ? A 化简律 (3) (A→B)∧A ? B 假言推理 (4) (A→B)∧┐B ?┐A 拒取式 (5) (A∨B)∧┐B ? A 析取三段论 (6) (A→B) ∧(B→C) ? (A→C) 假言三段论 (7) (A?B) ∧(B?C) ? (A ? C) 等价三段论 (8) (A→B)∧(C→D)∧(A∨C) ?(B∨D) 构造性二难 (A→B)∧(┐A→B)∧(A∨┐A) ? B 构造性二难(特殊形式) (9)(A→B)∧(C→D)∧(┐B∨┐D) ?(┐A∨┐C) 破坏性二难

离散数学二元关系传递性判别、闭包方法实验报告

离散数学二元关系传递性判别、闭包方法实验报告 学院:理学院班级:11信息与计算科学1班 姓名:***学号:************* 一、实验目的 1. 通过上机程序,进一步加深对二元关系传递性判别,自反闭包,对称闭包,传递闭 包的理解。 2. 掌握传递性判别,Warshall算法。 3. 学会用程序解决离散数学中的问题。 4. 增强我们编写程序的能力 二、实验内容 实验1:二元关系传递性判别 实验2:有限集上给定关系的自反、对称和传递闭包(用Warshall算法)。 三、实验环境 在microsoft visual c++实验环境下完成的,而所设计的程序也在这个环境下通过了编译,运行和测试。 四、实验原理和实现过程 实验1: #include using namespace std; void main() { intn,i,j,k; int m=0; //m是判断传递关系计数参数 cout<<"请输入矩阵的行列数n:"; cin>>n; int a[20][20]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cout<<"请输入a["<>a[i][j]; } } //输入R矩阵 cout<<"R的关系矩阵为:"<

} cout< using namespace std; void main() { intn,i,j; cout<<"请输入矩阵的行列数n:"; cin>>n; int a[20][20]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cout<<"请输入a["<>a[i][j]; } } cout<<"R的关系矩阵为:"<

离散数学N元集合关系个数计算

Author :ssjs Mail : 看了离散数学中的关系整理了一点关于n 元集合中各种关系的计算,现写下这个方便大家学习交流理解。对文章所致一切后果不负任何责任,请谨慎使用。 如有错误之处请指正。 定义: 1,对称:对于a,b R a b ∈∈∈),b (),a (,A 有如果只要 2,反对称:如果R a b R b a b b ∈∈=∈),(),(a ,A ,a 和时仅当 3,自反:如果对每个元素R ),(A a ∈∈a a 有 4,反自反:如果对于每个R ),(A a ?∈a a 有 5,传递:如果对R ),(,R ),(R ),(,A ,,∈∈∈∈c a c b b a c b a 则且 6,非对称:如果R ),(R ),(?∈a b b a 推出【注】其中是含(a,a)这样的有序对的。 【重要】集合A 的关系是从A 到A 的关系 (也就是说集合A 的关系是A A ?的子集)。 如下结论: N 元集合上的自反关系数为:)1(2 -n n N 元集合上的对称关系数为:2/)1(2+n n N 元集合上的反对称关系数为:2/)1(n 3 2-n n N 元集合上的非对称关系数为:2/)1(3-n n N 元集合上的反自反关系数为:)1(n 2-n N 元集合上的自反和对称关系数为:2/)1(n 2-n N 元集合上的不自反也不反自反关系数为:)1(n n 222 2-?-n 下面是上面结论的计算 1,自反 2A A ,A n n =?=因为也就是说集合A 有n 平方个有序对,由自反定义可知,对R ),(A a ∈∈?a a 有所以n 个有序对()).....3,2,1i X ,X (n i i =其中一定在所求关系中,否则的话此关系就不是自反的了,那么还有n n -2个有序对,所以由集合子集对应二进制串可得自反关系数为)1(n 222--=n n n 下图有助于理解。 (1,1) (2,2).......(n,n) | (1,2) (1,3).........(n-1,n) N n n -2 个有序对

离散数学

计算机专业通知:计算机资料就是同学们网上学习的阶段测试和简答练习等资料,请同学们打印下来复习,如有新的资料更新会通知大家!(以下资料只是网上一部分) 离散数学 一、单项选择题 1、(p∨(q∧r))→(p∧q∧r)的主析取范式是:(B ) A. ∑(0,1) B. ∑(0,1,7) C. ∑(0,7) D. ∑(1,7) 2、下列是真命题的是(A ) A. 2是素数 B. 2+3=6 C. 雪是黑色的 D. 3能被2整除 3、设P:我们划船,Q:我们跳舞,命题“我们不能既划船又跳舞”符号化为(B ) A. P Q B. ┐(P∧Q) C. ┐P∧┐Q D. ┐P∧Q 4、设谓词P(x):x是奇数,Q(x):x是偶数,谓词公式 x(P(x)Q(x))在哪个个体域中为真 (A) A. 自然数 B. 实数 C. 复数 D. 前面三者均成立 5、当P的真值是1,Q的真值是1 R的真值是0,下列复合命题中真值为0的是(D ) A. (PvQ)→R B. R→(P ? Q) C. (PvR) →Q D. (P ?R)??Q 6、设A={1,2,3},则下列说法正确的是(C ) A. R={<1,1>,<2,2>,<3,3>,<1,2>}在A上是反自反的 B. R={<2,3>,<3,2>}在A上是自反的 C. R={<1,2>,<2,1>,<3,3>在A上是对称的 D. R={<1,2>,<1,3>}在A上是对称的 7、下面关于集合的表示中,正确的是(B ). A. φ=0 B. φ∈{φ} C. φ∈φ D. φ∈{a,b} 8、设A={?},B=P(P(A)),以下不正确的式子是()(分数:1分) A. .{{? },{{? }},{?,{? }}}包含于B B. {{{? }}}包含于B C. {{?,{? }}}包括于B D. {{? },{{?,{? }}}}包含于B 标准答案是:D。您的答案是: 9、六阶群的子群的阶数可以是()。(分数:1分) A. 1,2,5 B. 2,4 C. 3,6,7 D. 2,3 标准答案是:D。您的答案是: 10、设G是n个结点、m条边和r个面的连通平面图,则m等于()。(分数:1分) A. n+r-2 B. n-r+2 C. n-r-2 D. n+r+2 标准答案是:A。您的答案是:

离散数学第三章集合的基本概念和运算知识点总结

集合论部分 第三章、集合的基本概念和运算 3.1 集合的基本概念集合的定义与表示 集合与元素 集合没有精确的数学定义 理解:一些离散个体组成的全体组成集合的个体称为它的元素或成员集合的表示 列元素法A={ a, b, c, d } 谓词表示法B={ x | P(x) } B 由使得P(x) 为真的x构成常用数集 N, Z, Q, R, C 分别表示自然数、整数、有理数、 实数和复数集合,注意0 是自然数. 元素与集合的关系:隶属关系 属于∈,不属于? 实例 A={ x | x∈R∧x2-1=0 }, A={-1,1} 1∈A, 2?A 注意:对于任何集合A 和元素x (可以是集合), x∈A和x?A 两者成立其一,且仅成立其一.

集合之间的关系 包含(子集)A?B??x (x∈A→x∈B) 不包含A?B??x (x∈A∧x?B) 相等A = B?A?B∧B?A 不相等A≠B 真包含A?B?A?B∧A≠B 不真包含A?B 思考:≠和?的定义 注意∈和?是不同层次的问题 空集?不含任何元素的集合 实例{x | x2+1=0∧x∈R} 就是空集 定理空集是任何集合的子集 ??A??x (x∈?→x∈A) ?T 推论空集是惟一的. 证假设存在?1和?2,则?1??2 且?1??2,因此?1=?2全集E 相对性

在给定问题中,全集包含任何集合,即?A (A?E ) 幂集定义P(A) = { x | x?A } 实例 P(?) = {?}, P({?}) = {?,{?}} P({1,{2,3}})={?,{1},{{2,3}},{1,{2,3}}} 计数 如果|A| = n,则|P(A)| = 2n 3.2 集合的基本运算 集合基本运算的定义??-~⊕ 并A?B = { x | x∈A∨x∈B } 交A?B = { x | x∈A∧x∈B } 相对补A-B = { x | x∈A∧x?B } 对称差A⊕B = (A-B)?(B-A) = (A?B)-(A?B) 绝对补~A = E-A 文氏图(John Venn)

离散数学关系的闭包运算

《离散数学》 实验报告 学院软件学院 专业软件工程 指导教师邹丽娜 学号10008118 姓名冯立勇 提交日期2011-12-25

实验二 关系的闭包运算 一 、实验目的 熟悉关系的闭包运算,编程实现关系闭包运算算法。 一 、实验内容 利用矩阵求解有限集上给定关系的自反、对称和传递闭包。 三. 实验过程 1. 算法分析: 在三种闭包中自反和对称闭包的求解很容易,对矩阵表示的关系,其自反闭包只要将矩阵的主对角线全部置为1就可;对称闭包则加上关系的转置矩阵(逻辑加法);传递闭包则有两种算法(二选一即可): 算法1:直接根据 n i i R R t 1 )(== 计算,过程略。 算法2:Warshall 算法(1962) 设R 的关系矩阵为M (1)令矩阵A=M (2)置i=1 (3)对所有的j ,若A[j ,i]=1,则 对于 k=1,2,…,n ,令A[j ,k]=A[j ,k]+A[i ,k] 注:此处为逻辑加,可以使用运算符|| (4) i=i+l . (5)若i ≤n ,则转到(3),否则结束. 流程图

2. 程序代码: #include void output(int s[][100]); void zifan(int s2[][100]); void duichen(int s2[][100]); void chuandi2(int s2[][100]); void chuandi1(int s2[][100]); void aa(); int s[100][100],z; int d,n ,i,j; int main(){aa();return 0;} void aa() { printf("请输入矩阵的行数(必须小于10)\n "); scanf("%d",&n); printf("请输入矩阵的列数(必须小于10)\n "); scanf("%d",&d); printf("请输入关系矩阵\n"); for(i=0;i

离散数学(集合地运算)实验报告材料

民族学院 计算机科学与工程学院实验报告 实验题目:集合的运算 课程名称:离散数学 实验类型:□演示性□验证性□操作性□设计性□综合性专业:网络工程班级:网络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中元素存储完毕。接着把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类似,这里不再重复。 实验步骤: 一、分析实验 阅读实验指导书和离散数学课本,充分理解整个实验的实验容及要求,以便对实验进行科学的设计。然后对整个实验进行“解剖”,即把整个实验系统地分成若干部

离散数学集合运算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

for(j=0;j int main(){

《离散数学(第三版)》方世昌 的期末复习知识点总结

《离散数学》期末复习提要 《离散数学》是中央电大“数学与数学应用专业”(本科)的一门选修课。该课程使用新的教学大纲,在原有离散数学课程的基础上削减了教学内容(主要是群与环、格与布尔代数这两章及图论的后三节内容),使用的教材为中央电大出版的《离散数学》(刘叙华等编)和《离散数学学习指导书》(虞恩蔚等编)。 离散数学主要研究离散量结构及相互关系,使学生得到良好的数学训练,提高学生抽象思维和逻辑推理能力,为从事计算机的应用提供必要的描述工具和理论基础。其先修课程为:高等数学、线性代数;后续课程为:数据结构、数据库、操作系统、计算机网络等。 课程的主要内容 1、集合论部分(集合的基本概念和运算、关系及其性质); 2、数理逻辑部分(命题逻辑、谓词逻辑); 3、图论部分(图的基本概念、树及其性质)。 学习建议 离散数学是理论性较强的学科,学习离散数学的关键是对离散数学(集合论、数理逻辑和图论)有关基本概念的准确掌握,对基本原理及基本运算的运用,并要多做练习。 教学要求的层次 各章教学要求的层次为了解、理解和掌握。了解即能正确判别有关概念和方法;理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用。 一、各章复习要求与重点 第一章集合 [复习知识点] 1、集合、元素、集合的表示方法、子集、空集、全集、集合的包含、相等、幂集 2、集合的交、并、差、补等运算及其运算律(交换律、结合律、分配律、吸收律、De Morgan 律等),文氏(Venn)图 3、序偶与迪卡尔积 本章重点内容:集合的概念、集合的运算性质、集合恒等式的证明 [复习要求]

1、理解集合、元素、子集、空集、全集、集合的包含、相等、幂集等基本概念。 2、掌握集合的表示法和集合的交、并、差、补等基本运算。 3、掌握集合运算基本规律,证明集合等式的方法。 4、了解序偶与迪卡尔积的概念,掌握迪卡尔积的运算。 [本章重点习题] P5~6,4、6; P14~15,3、6、7; P20,5、7。 [疑难解析] 1、集合的概念 因为集合的概念学生在中学阶段已经学过,这里只多了一个幂集概念,重点对幂集加以掌握,一是掌握幂集的构成,一是掌握幂集元数为2n 。 2、集合恒等式的证明 通过对集合恒等式证明的练习,既可以加深对集合性质的理解与掌握;又可以为第三章命题逻辑中公式的基本等价式的应用打下良好的基础。实际上,本章做题是一种基本功训练,尤其要求学生重视吸收律和重要等价式在B A B A ~?=-证明中的特殊作用。 [例题分析] 例1 设A ,B 是两个集合,A={1,2,3},B={1,2},则=-)()(B A ρρ 。 解 }}3,2,1{},3,2{},3,1{},2,1{},3{},2{},1{,{)(φρ=A }}2,1{},2{},1{,{)(φρ=B 于是}}3,2,1{},3,2{},3,1{},3{{)()(=-B A ρρ 例2 设{}{}Φ=,,,,b a b a A ,试求: (1){}b a A ,-; (2)Φ-A ; (3){}Φ-A ; (4){}{}A b a -,; (5)A -Φ; (6){}A -Φ。 解 (1){}{}{ }Φ=-,,,b a b a A (2)A A =Φ- (3){}{}{}b a b a A ,,,=Φ- (4){}{ }Φ=-A b a , (5)Φ=-ΦA (6){}Φ=-ΦA 例3 试证明()()()()B A B A B A B A ~~~~???=??? 证明

离散数学集合运算c语言

离散数学集合运算(第一次作业) C语言写法: #include //求长度的运算 void main() { int i,j,n; float A[]; float B[]; float C[]; \\用于存放A于B的交 float D[]; \\用于存放A与B的并 float E[]; \\用于存放A与B的差 float F[]; \\用于存放A与B的对称差 float G[]; \\用于存放A的幂集 int k; char x; n=strlen(A); for(i=0;i

printf(“\n”); } if(i >=n) { if(G[0]) cout <

010_离散数学

湖南师范大学硕士研究生入学考试自命题考试大纲 考试科目代码:考试科目名称:离散数学 一、试卷结构 1) 试卷成绩及考试时间 本试卷满分为100分,考试时间为180分钟。 2)答题方式:闭卷、笔试 3)试卷内容结构 集合论40% 数理逻辑40% 图论20% 4)题型结构 a: 填空题,5小题,每小题5分,共25分 b: 计算题,3小题,每小题10分,共30分 c: 证明题,3小题,每小题15分,共45分 二、考试内容与考试要求 1、集合论 考试内容 集合及其表示集合的运算与性质二元关系的概念二元关系的五种性质关系矩阵与关系图关系的各种运算与性质关系闭包与性质相容关系等价关系序关系部分函数、满射、内射、双射的概念可逆、左可逆、右可逆函数特征函数集合的基数与性质 考试要求 (1)理解集合的表示、二元关系的概念、部分函数、满射、内射、双射的概念可逆、左可逆、右可逆函数的概念; (2)掌握集合的运算与性质、关系的五种性质、关系的运算与性质、关系闭包与性质、相容关系、等价关系、序关系. (3)了解特征函数集合的基数与性质.

2、数理逻辑 考试内容 命题与命题的真值五个基本联结词命题符号化合式公式真值表合式公式的类型等价式、蕴含式的证明范式和判定问题求主范式的方法变元、谓词和量词量词的辖域、前束范式合式公式的解释、求合式公式在给定解释下真值的方法 考试要求 (1)理解命题与命题的真值、联结词、合式公式与真值表、变元、谓词和量词等概念. (2)掌握合式公式的类型、等价式、蕴含式的证明、求主范式的方法、合式公式的解释、以及求在给定解释下真值的方法. (3)了解量词的辖域、前束范式. 3、图论 考试内容 图的基本概念路与回路和连通性图的矩阵表示欧拉图和哈密顿图平面图对偶图与着色树与生成树根树及其应用 考试要求 (1)理解图、路、回路和连通性等基本概念. (2)掌握一些特殊图类的性质,树的特征与应用. 三、参考书目 [1] 左孝凌等,《离散数学》,上海科技文献出版社,1982年 [2] 王兵山、张强、毛晓光,《离散数学》,国防科技大学出版社,1998年 [3] 耿素云、屈宛玲,《离散数学》,高等教育出版社,2003年

《离散数学(第三版)》方世昌的期末深刻复习知识点归纳含例题

《离散数学(第三版)》方世昌的期末复习知识点总结含例题 一、各章复习要求与重点 第一章集合 [复习知识点] 1、集合、元素、集合的表示方法、子集、空集、全集、集合的包含、相等、幂集 2、集合的交、并、差、补等运算及其运算律(交换律、结合律、分配律、吸收律、De Morgan 律等),文氏(Venn)图 3、序偶与迪卡尔积 本章重点内容:集合的概念、集合的运算性质、集合恒等式的证明 [复习要求] 1、理解集合、元素、子集、空集、全集、集合的包含、相等、幂集等基本概念。 2、掌握集合的表示法和集合的交、并、差、补等基本运算。 3、掌握集合运算基本规律,证明集合等式的方法。 4、了解序偶与迪卡尔积的概念,掌握迪卡尔积的运算。 [疑难解析] 1、集合的概念 因为集合的概念学生在中学阶段已经学过,这里只多了一个幂集概念,重点对幂集加以掌握,一是掌握幂集的构成,一是掌握幂集元数为2n。 2、集合恒等式的证明 通过对集合恒等式证明的练习,既可以加深对集合性质的理解与掌握;又可以为第三章命题逻辑中公式的基本等价式的应用打下良好的基础。实际上,本章做题是一种基本功

训练,尤其要求学生重视吸收律和重要等价式在B A B A ~?=-证明中的特殊作用。 [例题分析] 例1 设A ,B 是两个集合,A={1,2,3},B={1,2},则=-)()(B A ρρ 。 解 }}3,2,1{},3,2{},3,1{},2,1{},3{},2{},1{,{)(φρ=A }}2,1{},2{},1{,{)(φρ=B 于是}}3,2,1{},3,2{},3,1{},3{{)()(=-B A ρρ 例2 设{}{}Φ=,,,,b a b a A ,试求: (1){}b a A ,-; (2)Φ-A ; (3){}Φ-A ; (4){}{}A b a -,; (5)A -Φ; (6){}A -Φ。 解 (1){}{}{}Φ=-,,,b a b a A (2)A A =Φ- (3){}{}{}b a b a A ,,,=Φ- (4){}{}Φ=-A b a , (5)Φ=-ΦA (6){}Φ=-ΦA 例3 试证明()()()()B A B A B A B A ~~~~???=??? 证明 ()()()()()() ()()()()()() ()()()()()() B A B A B A B A B B B A A B A A B B A A B A B A B A ~~~~~~~~~~~~~???=Φ?????Φ=???????=?????=??? 第二章 二元关系 [复习知识点] 1、关系、关系矩阵与关系图 2、复合关系与逆关系 3、关系的性质(自反性、对称性、反对称性、传递性) 4、关系的闭包(自反闭包、对称闭包、传递闭包)

离散数学符号表

《离散数学》符号表 ? 全称量词(任意量词) ? 存在量词 ├ 断定符(公式在L 中可证) ╞ 满足符(公式在E 上有效,公式在E 上可满足) ┐ 命题的“非”运算 ∧ 命题的“合取”(“与”)运算 ∨ 命题的“析取”(“或”,“可兼或”)运算 → 命题的“条件”运算 ? 命题的“双条件”运算的 B A ? 命题A 与B 等价关系 B A ? 命题A 与B 的蕴涵关系 * A 公式A 的对偶公式 wff 合式公式 iff 当且仅当 V 命题的“不可兼或”运算( “异或门” ) ↑ 命题的“与非” 运算( “与非门” ) ↓ 命题的“或非”运算( “或非门” ) □ 模态词“必然” ◇ 模态词“可能” φ 空集 ? 属于(?不属于) A μ(·) 集合A 的特征函数 P (A ) 集合A 的幂集 A 集合A 的点数 n A A A ??? (n A ) 集合A 的笛卡儿积 R R R =2 )(1R R R n n -= 关系R 的“复合” 0? 阿列夫零 ? 阿列夫

? 包含 ? 真包含 ∪ 集合的并运算 ∩ 集合的交运算 - (~) 集合的差运算 ⊕ 集合的对称差运算 m + m 同余加 m ? m 同余乘 〡 限制 R x ][ 集合关于关系R 的等价类 A /R 集合A 上关于R 的商集 )(A R π 集合A 关于关系R 的划分 )(A R π 集合A 关于划分π的关系 ][a 元素a 产生的循环群 R a ][ 元素a 形成的R 等价类 r C 由相容关系r 产生的最大相容类 I 环,理想 )/(n Z 模n 的同余类集合 ) (mod k b a ≡ a 与b 模k 相等 )(R r 关系R 的自反闭包 )(R s 关系R 的对称闭包 +R ,)(R t 关系R 的传递闭包 *R ,)(R rt 关系R 的自反、传递闭包 .i H 矩阵H 的第i 个行向量 j H . 矩阵H 的第j 个列向量 CP 命题演绎的定理(CP 规则) EG 存在推广规则(存在量词引入规则) ES 存在量词特指规则(存在量词消去规则) UG 全称推广规则(全称量词引入规则)

离散数学运算法则及例题

第一章命题逻辑 1,否定 1) 幂等律 p ∧ p ? p 2) 交换律 p ∧ q ? q ∧ p 3) 结合律( p ∧q)∧ r ? p ∧ (q ∧ r ) 4) 零律 p ∧ F ? F 5) 同一律 p ∧ T ? p 6) 否定律 p ∧? p ? F 3,析取(+) 1) 幂等律 2) 交换律 3) 结合律 4) 同一律 5) 零律 6) 否定律 7) 吸收律 8) 分配律 9) 德、摩根律 4,蕴含 P→ Q读作“P蕴含Q”,“如果P则Q”,“当P,则Q”,“P是Q的充分条

是Q的充要条件”。 1.1) 交换律 2.2) 结合律 3.说明:1)?是逻辑联结词,而?是公式关系符。A、B是命题,A ?B 仍是命题,而A ? B不是命题。(2) P、Q两命题,没有内在联系 P ?Q 仍有意义。例:2+2=5的充要条件是太阳从西边升起。该命题为真 几个重要定理 ? 1.若A ? B, B ? C,则A ? C.传递性 ? 2. A ? B的充要条件是A ? B且B ? A(逻辑等价的另一种定义) 其他的连接词符号 ?或非词符号 ?定理: A↓B等价于?(AVB) ?定理:{↓}是功能完备集 ?与非词符号 ?定理:A↑B等价于?(A∧B) ?定理:{↑}是功能完备集 ?异或词符号 ?举例说明:周末,我或者在北京或者在上海 ?定理:A异或B等价于?(A?B) 第二章谓词逻辑 谓词演算的推理规则 US 全称指定规则(消去量词) UG 全称推广规则对命题量化(添加量词) ES 存在指定规则(消去量词) EG 存在推广规则(添加量词) 第三章集合 第四章关系 (R ? S) (R·S)2=(R·S)·(R·S)= R·(S·R)·S R-1 ?逆运算的性质 ?定理:设R和S均是A到B的关系,则 ?(1)(R-1)-1=R,

离散数学N元集合关系个数计算

Author :ssjs Mail :632141456@https://www.wendangku.net/doc/8f17881103.html, 看了离散数学中的关系整理了一点关于n 元集合中各种关系的计算,现写下这个方便大家学习交流理解。对文章所致一切后果不负任何责任,请谨慎使用。 如有错误之处请指正。 定义: 1,对称:对于a,b R a b ∈∈∈),b (),a (,A 有如果只要 2,反对称:如果R a b R b a b b ∈∈=∈),(),(a ,A ,a 和时仅当 3,自反:如果对每个元素R ),(A a ∈∈a a 有 4,反自反:如果对于每个R ),(A a ?∈a a 有 5,传递:如果对R ),(,R ),(R ),(,A ,,∈∈∈∈c a c b b a c b a 则且 6,非对称:如果R ),(R ),(?∈a b b a 推出【注】其中是含(a,a)这样的有序对的。 【重要】集合A 的关系是从A 到A 的关系 (也就是说集合A 的关系是A A ?的子集)。 如下结论: N 元集合上的自反关系数为:)1(2 -n n N 元集合上的对称关系数为:2/)1(2+n n N 元集合上的反对称关系数为:2/)1(n 3 2-n n N 元集合上的非对称关系数为:2 /)1(3-n n N 元集合上的反自反关系数为:)1(n 2-n N 元集合上的自反和对称关系数为:2/)1(n 2-n N 元集合上的不自反也不反自反关系数为:)1(n n 222 2-?-n 下面是上面结论的计算 1,自反 2A A ,A n n =?=因为也就是说集合A 有n 平方个有序对,由自反定义可知,对R ),(A a ∈∈?a a 有所以n 个有序对()).....3,2,1i X ,X (n i i =其中一定在所求关系中,否则的话此关系就不是自反的了,那么还有n n -2个有序对,所以由集合子集对应二进制串可得自反关系数为)1(n 222--=n n n 下图有助于理解。 (1,1) (2,2).......(n,n) | (1,2) (1,3).........(n-1,n) N 个有序对 n n -2 个有序对

相关文档
相关文档 最新文档