厦门理工学院离散数学实验2_集合论

厦门理工学院离散数学实验2_集合论
厦门理工学院离散数学实验2_集合论

《离散数学》实验报告

实验序号:2 实验项目:集合论

附源程序清单:

1.#include

main()

{

int a[10]={1,2,3,4,5,6,7,8,9};

int b[5]={3,1,7,9};

int i,j,m=0,p=9,q=4;

for(i=0;i

{

if(3==a[i])

m++;

}

if(m!=0)

printf("3属于集合A\n");

else

printf("3不属于集合A\n");

m=0;

for(i = 0;i

{

if(10==a[i])

m++;

}

if(m!=0)

printf("10属于集合A\n");

else

printf("10不属于集合A\n");

m=0;

for(i=0;i

{

for(j=0;j

{

if(a[i]==b[j])

m++;

}

}

if(m=4)

printf("集合B属于集合A\n");

else

printf("集合B不属于集合A\n");

return 0;

}

2.#include

int main(){

int a[80],b[80],c[80],e[80];

int m,n,k,l,i,j,p,q,o;

l=1;

while(l){

printf(" ###欢迎使用集合运算软件###\n");

printf("#请输入您要输入的A数组内存放的数字的数目:");

scanf("%d",&m); //输入一个数组内需要存放的数字的数目

printf("#请输入集合A中的元素:");

scanf("%d",&a[0]);

for(i=1;i

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

for(j=0;j

if(a[i]==a[j]){

printf("#您的输入有误!集合中的元素不能相同!\n");

printf("#请重新输入:");

for(i=0;i

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

} //判断数组内是否存在重复的数字,若有,能重新输入

}

printf("#请输入您要输入的B数组内存放的数字的数目:");

scanf("%d",&n);

printf("#请输入集合B中的元素:");

scanf("%d",&b[0]);

for(i=1;i

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

for(j=0;j

if(b[i]==b[j]){

printf("#您的输入有误!集合中的元素不能相同!\n");

printf("#请重新输入:"); //重新输入集合B for(i=0;i

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

}

}

p=k;

printf("#A数组与B数组的交集为{");

for(k=0;k

printf("%d ",c[k]);

printf("}\n"); //交集的代码

k=0;

for(q=0;q

c[q]=0; //将C数组置空

for(i=0;i

c[k]=a[i];

k++;

}

for(i=0;i

for(j=0;j

if(b[i]==c[j]) break;

if(j==k-1){

c[k]=b[i];

k++;}

} //并集的代码

p=k; //确定C数组当前的数目,便于下一次置空printf("#A数组与B数组的并集为{");

for(k=0;k

printf("%d ",c[k]);

printf("}\n");

k=0;

for(q=0;q

c[q]=0;

for(j=0;j

for (i=0;i

if (a[j]==b[i])

break;

if(j==n-1)

{

c[k]=a[i];

k++;

} //差运算的代码}

p=k;

printf("#A数组与B数组的差运算集为{");

for(k=0;k

printf("%d ",c[k]);

printf("}\n");

k=0;

for(q=0;q

c[q]=0;

for (i=0;i

for (j=0;j

{

if (e[i]==a[j])

break;

if (j==m-1)

{

c[k]=e[i];

k++;

}

} //补运算的代码

printf("#您是否还想继续计算。是请输入1,否请输入0\n");

scanf("%d",&l);

} //while语句判断是否继续

printf("\n\n欢迎使用,再见!\n");

return 0;

}

3.#include

#include

#include

#include

#include

using namespace std;

char a[100];

char b[100];

void GetPowerSet(int i, char a[])

{

char x;

int k;

int len = strlen(a);

if(i >= len)

{

if(b[0])

cout << b << endl;

else

cout << "空集" << endl; // 表示空集}

else

{

x = a[i];

k = strlen(b);

b[k] = x;

GetPowerSet(i+1, a);

b[k] = 0;

GetPowerSet(i+1, a);

}

}

int main()

{

printf("请输入集合");

while(scanf("%s", a) != EOF)

{

printf("%s的幂集是:\n", a);

printf("------------\n");

GetPowerSet(0, a);

printf("------------\n");

}

}

离散数学(集合论)课后总结

第三章集合论基础 1、设A={a,{a},{a,b},{{a,b},c}}判断下面命题的真值。 ⑴{a}∈A T ⑵?({a}? A) F ⑶c∈A F ⑷{a}?{{a,b},c} F ⑸{{a}}?A T ⑹{a,b}∈{{a,b},c} T ⑺{{a,b}}?A T ⑻{a,b}?{{a,b},c} F ⑼{c}?{{a,b},c} T ⑽({c}?A)→(a∈Φ) T 2、证明空集是唯一的。(性质1:对于任何集合A,都有Φ?A。) 证明:假设有两个空集Φ1 、Φ2 ,则 因为Φ1是空集,则由性质1得Φ1 ?Φ2 。 因为Φ2是空集,则由性质1得Φ2 ?Φ1 。 所以Φ1=Φ2 。 3、设A={Φ},B=P(P(A)).问:(这道题要求知道幂集合的概念) a)是否Φ∈B?是否Φ?B? b)是否{Φ}∈B? 是否{Φ}?B? c)是否{{Φ}}∈B? 是否{{Φ}}?B? 解:设A={Φ},B=P(P(A)) P(A)= {Φ,{Φ}} 在求P(P(A))时,一些同学对集合{Φ,{Φ}}难理解,实际上你就将{Φ,{Φ}}中的元素分别看成Φ=a ,{Φ}=b, 于是{Φ,{Φ}}={a,b} B=P(P(A))=P({a,b}) ={B0, B1 , B2 , B3 }={B00, B01,B10 ,B11}={Φ, {b}, {a}, {a,b}} 然后再将a,b代回即可B=P(P(A))=P({Φ,{Φ}})={Φ,{Φ} ,{{Φ}}, {Φ,{Φ}}} 以后熟悉后就可以直接写出。 a) Φ∈B Φ?B b) {Φ}∈B {Φ} ? B c) {{Φ}}∈B {{Φ}}?B a)、b)、c)中命题均为真。 4、证明A?B ? A∩B=A成立。 证明:A∩B=A ??x(x∈A∩B ?x∈A) ??x((x∈A∩B → x∈A)∧(x∈A→ x∈A∩B)) ??x((x?A∩B∨x∈A)∧(x?A∨x∈A∩B)) ??x((?(x∈A∧x∈B)∨x∈A)∧(x?A∨(x∈A∧x∈B)) ??x(((x?A∨x?B)∨x∈A)∧(x?A∨(x∈A∧x∈B))) ??x(T∧(T∧( x?A∨x∈B))) ??x( x?A∨x∈B)??x(x∈A→x∈B)? A?B 5、(A-B)-C=(A-C)-(B-C) 证明:任取x∈(A-C)-(B-C) ?x∈(A-C)∧x?(B-C) ?(x∈A∧x?C)∧?(x∈B∧x?C) ?(x∈A∧x?C)∧(x?B∨x∈C) ?(x∈A∧x?C∧x?B)∨(x∈A∧x?C∧x∈C) ?x∈A∧x?C∧x?B?x∈A∧x?B∧x?C ?(x∈A∧x?B)∧x?C ?x∈A-B∧x?C?x∈(A-B)-C 所以(A-B)-C=(A-C)-(B-C)

离散数学 欧拉图实验

1、欧拉图判定和应用 【实验内容】 判断一个图是不是,如果是,求出所有欧拉路 【实验原理和方法】 (1)用关系矩阵R=n n ij r )(表示图。 (2)对无向图而言,若所有结点的度都是偶数,则该图为欧拉图。 C 语言算法: flag=1; for(i=1;i<=n && flag;i++) { sum=0; for(j=1;j<=n;j++) if(r[i][j]) sum++; if(sum%2==0) flag=0; } 如果 flag 该无向图是欧拉图 (3)对有向图而言,若所有结点的入度等于出度,则该图为欧拉图。 C 语言算法: flag=1; for(i=1;i<=n && flag;i++) { sum1=0; sum2=0; for(j=1;j<=n;j++) if(r[i][j]) sum1++; for(j=1;j<=n;j++) if(r[j][i]) sum2++; if(sum1%2==0 || sum2%2==0) flag=0; } 如果 flag 该有向图是欧拉图 (4)求出欧拉路的方法:欧拉路经过每条边一次且仅一次。可用回溯的方法求得所有欧拉路。 C 语言算法: int count=0,cur=0,r[N][N]; // r[N][N]为图的邻接矩阵,cur 为当前结点编号,count 为欧拉路的数量。 int sequence[M];// sequence 保留访问点的序列,M 为图的边数 输入图信息; void try1(int k) //k 表示边的序号

{ int i,pre=cur; //j保留前一个点的位置,pre为前一结点的编号 for (i=0;i #include #define N 13 struct tree { float num; struct tree *Lnode; struct tree *Rnode; }* fp[N];//保存结点 char s[2*N];//放前缀码 void inite_node(float f[],int n)//生成叶子结点 { int i; struct tree *pt; for(i=0;i

离散数学第四章二元关系和函数知识点总结

集合论部分 第四章、二元关系和函数 集合的笛卡儿积与二元关系有序对 定义由两个客体x 和y,按照一定的顺序组成的 二元组称为有序对,记作 实例:点的直角坐标(3,4) 有序对性质 有序性 (当x y时) 相等的充分必要条件是= x=u y=v 例1 <2, x+5> = <3y4, y>,求x, y. 解 3y 4 = 2, x+5 = y y = 2, x = 3 定义一个有序n (n3) 元组 是一个 有序对,其中第一个元素是一个有序n-1元组,即 = < , x n> 当n=1时, 形式上可以看成有序 1 元组. 实例 n 维向量是有序 n元组. 笛卡儿积及其性质 定义设A,B为集合,A与B 的笛卡儿积记作A B,即A B ={ | x A y B } 例2 A={1,2,3}, B={a,b,c} A B ={<1,a>,<1,b>,<1,c>,<2,a>,<2,b>,<2,c>, <3,a>,<3,b>,<3,c>} B A ={,,,,,, , ,} A={}, P(A)A={<,>, <{},>} 性质:

不适合交换律A B B A (A B, A, B) 不适合结合律 (A B)C A(B C) (A, B)对于并或交运算满足分配律 A(B C)=(A B)(A C) (B C)A=(B A)(C A) A(B C)=(A B)(A C) (B C)A=(B A)(C A) 若A或B中有一个为空集,则A B就是空集. A=B= 若|A|=m, |B|=n, 则 |A B|=mn 证明A(B C)=(A B)(A C) 证任取 ∈A×(B∪C) x∈A∧y∈B∪C x∈A∧(y∈B∨y∈C) (x∈A∧y∈B)∨(x∈A∧y∈C) ∈A×B∨∈A×C ∈(A×B)∪(A×C) 所以有A×(B∪C) = (A×B)∪(A×C). 例3 (1) 证明A=B C=D A C=B D (2) A C=B D是否推出A=B C=D 为什么 解 (1) 任取 A C x A y C x B y D B D (2) 不一定. 反例如下: A={1},B={2}, C=D=, 则A C=B D 但是A B.

离散数学测试(集合论)

《离散数学》单元测试(集合论) 3.1集合的基本概念 1.设A、B、C是集合,确定下列命题是否正确,说明理由。 (1)Ф?Ф (2)Ф∈Ф (3)Ф?{Ф} (4)Ф∈{Ф} (5)如果A∈B与B?C,则A?C (6)如果A∈B与B?C,则A∈C (7)如果A?B与B∈C,则A∈C (8)如果A?B与B∈C,则A?C 2.有n个元素的集合A的幂集ρ(A)的元素个数为多少?求下列集合的幂集合。 (1)Ф (2){Ф} (3){Ф,{Ф}} (4){a,b} (5){a,b,{a,b}} (6){1,{1},2,{2}} 3.2 集合的运算 1.设A,B是两个集合,A={1,2,3},B={2,3,4},则B-A= ,ρ(B)- ρ(A)= 。 2.全集E={a,b,c,d,e},A={a,d},B={a,b,e},C={b,d},求 ,ρ(A)∩ρ(B) A B C= () = 。 3.下列命题正确的是()。 A.φ∩{φ}=φB.φ∪{φ}=φC.{a}∈{a,b,c} D.φ∈{a,b,c} 4.确定下列各式的值: Ф∩{Ф}= {Ф,{Ф}}-Ф= {Ф,{Ф}}-{Ф}= 6.证明下列各等式: A∩(B-A)=Ф A∪(A∩B)=A 3.3 有穷集合的计数问题 掌握文氏图和容斥原理求解有穷集合的计数问题的方法,并会简单应用。以教材的示例为基础。

第4章 二元关系 4.1二元关系的定义、表示方法与特性 1. A 和B 是任意两个集合,若序偶的第一个元素是A 的一个元素,第二个元素是B 的一个 元素,则所有这样的序偶集合称为集合A 和B 的 , 记作A ?B ,即A ?B= 。A ?B 的子集R 称为A 到B 的一个 。若|A|=m , B|=n ,则A 到B 共有 个不同的二元关系。 2. 设集合A ={a,b},B ={x,y},求笛卡尔乘积A ×B,B ×A,,A ×ρ(B)。 3. 证明: (1) (A ∩B)×C=(A ×C)∩(B ×C) (2) (A ∪B)×C=(A ×C)∪(B ×C) 4. 设A={a,b},B={x,y},则从A 到B 的二元关系共有多少个?请分别列出。 5. 设集合A={a,b,c,d},B={1,2,3},R 是A 到B 的二元关系,R={,,,,,},写出R 的关系矩阵和关系图。 6. 设集合 A={1,2,3},A 上的关系R={<1,1>, <1,2>, <2,2>, <3,3>, <3,2>},则R 不具备( )。 A 自反性 B. 反自反性 C. 对称性 D. 反对称性 E. 传递性 7. 设集合A={a,b,c},R 是A 上的二元关系,R={〈a,a 〉,〈a,b 〉,〈a,c 〉,〈c,a 〉},那么R 具备( )。 A 自反性 B. 反自反性 C. 对称性 D. 反对称性 E. 传递性 4.2 关系的运算(合成、逆运算、闭包运算) 1. 集合A={a 1,a 2,a 3},B={b 1,b 2,b 3,b 4},C={c 1,c 2,c 3,c 4}; R 是A 到B 的二元关系,R={,,,,}; S 是B 到C 的二元关系,S={,,,,}。 求复合关系R оS 。 2. 设集合{1,2,,10}A = ,A 上的二元关系R={|x,y ∈A,x+3y=12},试求R n 。 3. 设R ,S 是二元关系,证明:111)(---=R S S R 。 4. 集合},,,{d c b a R =,R 是集合A 上的关系,{,,,,,}R a b b a b c =<><><>,求 )(),(),(R t R s R r ,并分别画出它们的关系图。 4.3 等价关系及划分 1. R 是集合A 上的二元关系,如果关系R 同时具有 性、 性 和 性,则称R 是等价关系。 2. R 是集合A={a ,b ,c ,d ,e ,f }是上的二元关系, R={〈a ,d 〉,〈d ,a 〉,〈a ,e 〉,〈e ,a 〉, }∪I A

(完整版)离散数学实验指导书及其答案

实验一命题逻辑公式化简 【实验目的】加深对五个基本联结词(否定、合取、析取、条件、双条件)的理解、掌握利用基本等价公式化简公式的方法。 【实验内容】用化简命题逻辑公式的方法设计一个表决开关电路。 实验用例:用化简命题逻辑公式的方法设计一个 5 人表决开关电路,要求 3 人以上(含 3 人)同意则表决通过(表决开关亮)。 【实验原理和方法】 (1)写出5人表决开关电路真值表,从真值表得出5 人表决开关电路的主合取公式(或主析取公式),将公式化简成尽可能含五个基本联结词最少的等价公式。 (2)上面公式中的每一个联结词是一个开关元件,将它们定义成 C 语言中的函数。 (3)输入5人表决值(0或1),调用上面定义的函数,将5人表决开关电路真值表的等价公式写成一个函数表达式。 (4)输出函数表达式的结果,如果是1,则表明表决通过,否则表决不通过。 参考代码: #include int vote(int a,int b,int c,int d,int e) { // 五人中任取三人的不同的取法有10种。 i f( a&&b&&c || a&&b&&d || a&&b&&e || a&&c&&d || a&&c&&e || a&&d&&e || b&&c&&d || b&&c&&e || b&&d&&e || c&&d&&e) return 1; else return 0; } void main() { i nt a,b,c,d,e; printf(" 请输入第五个人的表决值(0 或1,空格分开):"); scanf ("%d%d%d%d%d",&a,&b,&c,&d,&e); i f(vote(a,b,c,d,e)) printf(" 很好,表决通过!\n"); else printf(" 遗憾,表决没有通过!\n"); } // 注:联结词不定义成函数,否则太繁 实验二命题逻辑推理 【实验目的】加深对命题逻辑推理方法的理解。【实验内容】用命题逻辑推理的方法解决逻辑

离散数学集合论部分测试题

离散数学集合论部分测试题

离散数学集合论部分综合练习 本课程综合练习共分3次,分别是集合论部分、图论部分、数理逻辑部分的综合练习,这3次综合练习基本上是按照考试的题型安排练习题目,目的是通过综合练习,使同学自己检验学习成果,找出掌握的薄弱知识点,重点复习,争取尽快掌握。本次是集合论部分的综合练习。 一、单项选择题 1.若集合A={a,b},B={ a,b,{ a,b }},则(). A.A?B,且A∈B B.A∈B,但A?B C.A?B,但A?B D.A?B,且A?B 2.若集合A={2,a,{ a },4},则下列表述正确的是( ). A.{a,{ a }}∈A B.{ a }?A C.{2}∈A D.?∈A 3.若集合A={ a,{a},{1,2}},则下列表述正确的是( ). A.{a,{a}}∈A B.{2}?A C.{a}?A D.?∈A 4.若集合A={a,b,{1,2 }},B={1,2},则(). A.B? A,且B∈A B.B∈ A,但B?A C.B ? A,但B?A D.B? A,且B?A 5.设集合A = {1, a },则P(A) = ( ). A.{{1}, {a}} B.{?,{1}, {a}} C.{?,{1}, {a}, {1, a }} D.{{1}, {a}, {1, a }} 6.若集合A的元素个数为10,则其幂集的元素个数为(). A.1024 B.10 C.100 D.1 7.集合A={1, 2, 3, 4, 5, 6, 7, 8}上的关系R={|x+y=10且x, y∈A},则R 的性质为(). A.自反的B.对称的 C.传递且对称的D.反自反且传递的 8.设集合A = {1,2,3,4,5,6 }上的二元关系R ={?a , b∈A , 且a +b = 8},则R具有的性质为(). A.自反的B.对称的 C.对称和传递的D.反自反和传递的 9.如果R1和R2是A上的自反关系,则R1∪R2,R1∩R2,R1-R2中自反关系有()个. A.0 B.2 C.1 D.3 10.设集合A={1 , 2 , 3 , 4}上的二元关系 R = {<1 , 1>,<2 , 2>,<2 , 3>,<4 , 4>},

离散数学实验报告

离散数学实验报告(实验ABC) 专业班级 学生姓名 学生学号 指导老师 完成时间

目录 第一章实验概述..................................... 错误!未定义书签。 实验目的....................................... 错误!未定义书签。 实验内容....................................... 错误!未定义书签。 实验环境....................................... 错误!未定义书签。第二章实验原理和实现过程........................... 错误!未定义书签。 实验原理....................................... 错误!未定义书签。 建立图的邻接矩阵,判断图是否连通 ............ 错误!未定义书签。 计算任意两个结点间的距离 ................... 错误!未定义书签。 对不连通的图输出其各个连通支 ................ 错误!未定义书签。 实验过程(算法描述)........................... 错误!未定义书签。 程序整体思路 ............................... 错误!未定义书签。 具体算法流程 ................................ 错误!未定义书签。第三章实验数据及结果分析........................... 错误!未定义书签。 建立图的邻接矩阵并判断图是否连通的功能测试及结果分析错误!未定义书签。 输入无向图的边 .............................. 错误!未定义书签。 建立图的连接矩阵 ............................ 错误!未定义书签。 其他功能的功能测试和结果分析................... 错误!未定义书签。 计算节点间的距离 ............................ 错误!未定义书签。 判断图的连通性 .............................. 错误!未定义书签。 输出图的连通支 .............................. 错误!未定义书签。 退出系统 .................................... 错误!未定义书签。第四章实验收获和心得体会........................... 错误!未定义书签。

离散数学之集合论

第二篇集合与关系 集合论是现代各科数学的基础,它是德国数学家康托(Geog Cantor, 1845~1918)于1874年创立的,1876~1883年康托一系列有关集合论的文章,对任意元的集合进行了深入的探讨,提出了关于基数、序数和良序集等理论,奠定了集合论深厚的基础,19世纪90年代后逐渐为数学家们采用,成为分析数学、代数和几何的有力工具。 随着集合论的发展,以及它与数学哲学密切联系所作的讨论,在1900年前后出现了各种悖论,使集合的发展一度陷入僵滞的局面。1904~1908年,策墨罗(Zermelo)列出了第一个集合论的公理系统,它的公理,使数学哲学中产生的一些矛盾基本上得到了统一,在此基础上以后就逐渐形成了公理化集合论和抽象集合论,使该学科成为在数学中发展最为迅速的一个分支。 现在,集合论已经成为内容充实、实用广泛的一门学科,在近代数学中占据重要地位,它的观点已渗透到古典分析、泛函、概率、函数论、信息论、排队论等现代数学各个分支,正在影响着整个数学科学。集合论在计算机科学中也具有十分广泛的应用,计算机科学领域中的大多数基本概念和理论几乎均采用集合论的有关术语来描述和论证,成为计算机科学工作者必不可少的基础知识。集合论可作为数学学科的通用语言,一切必要的数据结构都可以利用集合这个原始数据结构而构造出来,计算机科学家或许也可以利用这种方法。 本篇介绍集合论的基础知识,主要内容包括集合及其运算、性质、序偶、关系、映射、函数、基数等。 第2-1章集合及其运算 §2-1-1 集合的概念及其表示 一、集合的概念 “集合”是集合论中的一个原始的概念,因此它不能被精确地定义出来。一般地说,把具有某种共同性质的许多事物,汇集成一个整体,就形成一个集合。构成这个集合的每一个事物称为这个集合的一个成员(或一个元素),构成集合的这些成员可以是具体东西,也可以是抽象东西。例如:教室内的桌椅;图书馆的藏书;全国的高等学校;自然数的全体;程序设计语言C的基本字符的全体等均分别构成一个集合。通常用大写的英文字母表示集合的名称;用小写的英文字母表示元素。若元素a属于集合A记作

离散数学集合论部分测试题

离散数学集合论部分综合练习 本课程综合练习共分3次,分别是集合论部分、图论部分、数理逻辑部分的综合练习,这3次综合练习基本上是按照考试的题型安排练习题目,目的是通过综合练习,使同学自己检验学习成果,找出掌握的薄弱知识点,重点复习,争取尽快掌握。本次是集合论部分的综合练习。 一、单项选择题 1.若集合A={a,b},B={ a,b,{ a,b }},则(). A.A?B,且A∈B B.A∈B,但A?B C.A?B,但A?B D.A?B,且A?B 2.若集合A={2,a,{ a },4},则下列表述正确的是( ). A.{a,{ a }}∈A B.{ a }?A C.{2}∈A D.?∈A 3.若集合A={ a,{a},{1,2}},则下列表述正确的是( ). A.{a,{a}}∈A B.{2}?A C.{a}?A D.?∈A 4.若集合A={a,b,{1,2 }},B={1,2},则(). A.B? A,且B∈A B.B∈ A,但B?A C.B ? A,但B?A D.B? A,且B?A 5.设集合A = {1, a },则P(A) = ( ). A.{{1}, {a}} B.{?,{1}, {a}} C.{?,{1}, {a}, {1, a }} D.{{1}, {a}, {1, a }} 6.若集合A的元素个数为10,则其幂集的元素个数为(). A.1024 B.10 C.100 D.1 7.集合A={1, 2, 3, 4, 5, 6, 7, 8}上的关系R={|x+y=10且x, y∈A},则R的性质为(). A.自反的 B.对称的 C.传递且对称的 D.反自反且传递的 8.设集合A= {1,2,3,4,5,6 }上的二元关系R ={?a, b∈A, 且a +b = 8},则R具有的性质为(). A.自反的 B.对称的 C.对称和传递的 D.反自反和传递的 9.如果R1和R2是A上的自反关系,则R1∪R2,R1∩R2,R1-R2中自反关系有()个. A.0 B.2 C.1 D.3 10.设集合A={1 , 2 , 3 , 4}上的二元关系 R = {<1 , 1>,<2 , 2>,<2 , 3>,<4 , 4>},

离散数学实验报告--四个实验!!!

《离散数学》 课程设计 学院计算机学院 学生姓名 学号 指导教师 评阅意见 提交日期 2011 年 11 月 25 日

引言 《离散数学》是现代数学的一个重要分支,也是计算机科学与技术,电子信息技术,生物技术等的核心基础课程。它是研究离散量(如整数、有理数、有限字母表等)的数学结构、性质及关系的学问。它一方面充分地描述了计算机科学离散性的特点,为学生进一步学习算法与数据结构、程序设计语言、操作系统、编译原理、电路设计、软件工程与方法学、数据库与信息检索系统、人工智能、网络、计算机图形学等专业课打好数学基础;另一方面,通过学习离散数学课程,学生在获得离散问题建模、离散数学理论、计算机求解方法和技术知识的同时,还可以培养和提高抽象思维能力和严密的逻辑推理能力,为今后爱念族皮及用计算机处理大量的日常事务和科研项目、从事计算机科学和应用打下坚实基础。特别是对于那些从事计算机科学与理论研究的高层次计算机人员来说,离散数学更是必不可少的基础理论工具。 实验一、编程判断一个二元关系的性质(是否具有自反性、反自反性、对称性、反对称性和传递性) 一、前言引语:二元关系是离散数学中重要的内容。因为事物之间总是可以 根据需要确定相应的关系。从数学的角度来看,这类联系就是某个集合中元素之间存在的关系。 二、数学原理:自反、对称、传递关系 设A和B都是已知的集合,R是A到B的一个确定的二元关系,那么集合R 就是A×B的一个合于R={(x,y)∈A×B|xRy}的子集合 设R是集合A上的二元关系: 自反关系:对任意的x∈A,都满足∈R,则称R是自反的,或称R具有自反性,即R在A上是自反的?(?x)((x∈A)→(∈R))=1 对称关系:对任意的x,y∈A,如果∈R,那么∈R,则称关系R是对称的,或称R具有对称性,即R在A上是对称的? (?x)(?y)((x∈A)∧(y∈A)∧(∈R)→(∈R))=1 传递关系:对任意的x,y,z∈A,如果∈R且∈R,那么∈R,则称关系R是传递的,或称R具有传递性,即R在A上是传递的? (?x)(?y)(?z)[(x∈A)∧(y∈A)∧(z∈A)∧((∈R)∧(∈R)→(∈R))]=1 三、实验原理:通过二元关系与关系矩阵的联系,可以引入N维数组,以数 组的运算来实现二元关系的判断。 图示:

离散数学集合论期末复习题

集合论期末复习题 1. 求(())P P φ 答:(()){,{}}P P φφφ= 2. 设||A n =,求|()|P A 答:|()|2n P A = 3. {,{}}________φφφ-=,{,{}}{}________φφφ-= 答:{,{}}φφ,{{}}φ 4. 证明:()()()A B C A B A C ?⊕=?⊕? 证明: () [()()] (~)(~) (~)(~) (~)(~)(~)(~)[()(~~)][()(~~)] [()~()][()~()] [()()][()()] ()() A B C A B C C B A B C C B A B C A C B A B A A B C A C B A C A A B A C A C B A A B A C A C A B A B A C A C A B A B A C ?⊕=?-?-=????=?????=???????????=???????=???????=?-???-?=?⊕? 5. 200人中,有67人学数学,47人学物理,95人学生物,26人学数学和生物,28人学数学和物理,27人学生物和物理,50人三门都不学,问:三门都学的人数和单学一门的人数? 解:设三门都学的人数和单学数学、物理、生物的人数分别为x ,y1,y2,y3,则如下图: (26)(28)167(27)(28)247(26)(27)395 (26)(27)(28)12350200 x x x y x x x y x x x y x x x x y y y +-+-+=??+-+-+=??+-+-+=??-+-+-+++++=? 求解得到:1132228135342214123269364 y x x y x y y x y y y y x y -==????-=-=?????-==????++-==?? 6. 集合S={0,1,2,3,4,5,6},R 为S 上的关系。R={|x

离散数学实验报告()

《离散数学》实验报告 专业网络工程 班级 姓名 学号 授课教师 二 O 一六年十二月

目录 实验一联结词的运算 实验二根据矩阵的乘法求复合关系 实验三利用warshall算法求关系的传递闭包实验四图的可达矩阵实现

实验一联结词的运算 一.实验目的 通过上机实验操作,将命题连接词运算融入到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的真值为真。 三.实验内容 编写一个程序实现非运算、合取运算、析取运算、异或运算、蕴涵运算、等价运算。四.算法程序 #include void main() { printf("请输入P、Q的真值\n"); int a,b; scanf("%d%d",&a,&b); int c,d; if(a==1) c=0; else c=1; if(b==1) d=0;

离散数学函数复习题答案

第6章 函数 一、选择题(每题3分) 1、设{,,},{1,2,3}A a b c B ==,则下列关系中能构成A 到B 函数的是( C ) A 、1{,1,,2,,3}f a a a =<><><> B 、2{,1,,1,,2}f a b b =<><><> C 、4{,1,,1,,1}f a b c =<><><> D 、1{,1,,2,,2,,3}f a a b c =<><><><> 2、设R Z N 、、分别为实数集、整数集,自然数集,则下列关系中能构成函数的是( B ) A 、)}10(),(|,{<+∧∈>< C 、)}(),(|,{2x y R y x y x =∧∈>< D 、{,|(,)(mod 3)}x y x y Z x y <>∈∧≡ 3、设Z 为整数集,则二元关系{,23}f a b a Z b Z b a =<>∈∧∈∧=+ ( B ) A 、不能构成Z 上的函数 B 、能构成Z 上的函数 C 、能构成Z 上的单射 D 、能构成Z 上的满射 4、设f 为自然数集N 上的函数,且1()0 x f x x ?=? ?若为奇数若为偶数 ,则f ( D ) A 、为单射而非满 B 、为满射而非单射 C 、为双射 D 、既非单射又非满射 5、设f 为整数集Z 上的函数,且()f x 为x 除以5的余数 ,则f ( D ) A 、为单射而非满 B 、为满射而非单射 C 、为双射 D 、既非单射又非满射 6、设R Z 、分别为实数集、整数集,则下列函数为满射而非单射的是( C ) A 、:,()6f R R f x x →=+ B 、2 :,()(6)f R R f x x →=+ C 、:,()[]f R Z f x x →= D 、6 :, ()6f R R f x x x →=+ 7、设R R Z +、、分别为实数集、非负实数集、正整数集,下列函数为单射而非满射的是( B ) A 、2 :,()71f R R f x x x →=-+- B 、x x f R Z f ln )(,:=→+ ; C 、:, ()f R R f x x →= D 、:,()71f R R f x x →=+ 8、设Z N E 、、分别为整数集,自然数集,偶数集,则下列函数是双射的为( A ) A 、f : Z E → , ()2f x x = B 、f : Z E → , ()8f x x = C 、f : Z Z →, ()8f x = D 、f : N N N →?, (),1f n n n =<+> 9、设3,4X Y ==,则从X 到Y 可以生成不同的单射个数为( B ). A 、12 B 、24 C 、64 D 、81 10、设3,2X Y ==,则从X 到Y 可以生成不同的满射个数为( B ). A 、6 B 、8 C 、9 D 、64 11、设函数:f B C →,:g A B →都是单射,则:f g A C → ( A ) A 、是单射 B 、是满射 C 、是双射 D 、既非单射又非满射 12、设函数:f B C →,:g A B →都是满射,则:f g A C → ( B ) A 、是单射 B 、是满射 C 、是双射 D 、既非单射又非满射 13、设函数:f B C →,:g A B →都是双射,则:f g A C → ( C ) A 、是单射 B 、是满射 C 、是双射 D 、既非单射又非满射 14、设函数:f B C →,:g A B →,若:f g A C → 是单射,则( B ) A 、f 是单射 B 、g 是单射 C 、f 是满射 D 、g 是满射 15、设函数:f B C →,:g A B →,若:f g A C → 是满射,则( C ) A 、f 是单射 B 、g 是单射 C 、f 是满射 D 、g 是满射 16、设函数:f B C →,:g A B →,若:f g A C → 是双射,则( D ) A 、,f g 都是单射 B 、,f g 都是满射 C 、f 是单射, g 是满射 D 、f 是满射, g 是单射

离散数学及其应用集合论部分课后习题答案

作业答案:集合论部分 P90:习题六 5、确定下列命题是否为真。 (2)?∈? (4){}?∈? (6){,}{,,,{,}}a b a b c a b ∈ 解答:(2)假(4)真(6)真 8、求下列集合的幂集。 (5){{1,2},{2,1,1},{2,1,1,2}} (6){{,2},{2}}? 解答: (5)集合的元素彼此互不相同,所以{2,1,1,2}{1,2}=,所以该题的结论应该为 {,{{1,2}},{{2,1,1}},{{1,2},{2,1,1}}}? (6){,{{,2}},{{2}},{{,2},{2}}}??? 9、设{1,2,3,4,5,6}E =,{1,4}A =,{1,2,5}B =,{2,4}C =,求下列集合。 (1)A B (2)()A B 解答: (1){1,4}{3,4,6}{4}A B == (2)(){1}{2,3,4,5,6}A B == 31、设A,B,C 为任意集合,证明 () ()()()A B B A A B A B --=- 证明: ()() {|}{|()()}{|()()()()} {|()()}{|()()}{|()()} {|()()}{|()(A B B A x x A B x B A x x A x B x B x A x x A x B x B x B x A x A x B x A x x A x B x B x A x x A B x A x B x x A B x A x B x x A B x B x x A B x A --=∈-∨∈-=∈∧?∨∈∧?=∈∨∈∧?∨∈∧∈∨?∧?∨?=∈∨∈∧?∨?=∈∧?∨?=∈∧∈∨∈=∈∧∈=∈∧∈)} B A B A B =-

离散数学及答案

全国2010年7月自学考试离散数学试题 课程代码:02324 一、单项选择题(本大题共15小题,每小题1分,共15分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列句子不是..命题的是( D ) A .中华人民共和国的首都是北京 B .张三是学生 C .雪是黑色的 D .太好了! 2.下列式子不是..谓词合式公式的是( B ) A .(?x )P (x )→R (y ) B .(?x ) ┐P (x )?(?x )(P (x )→Q (x )) C .(?x )(?y )(P (x )∧Q (y ))→(?x )R (x ) D .(?x )(P (x ,y )→Q (x ,z ))∨(?z )R (x ,z ) 3.下列式子为重言式的是( ) A .(┐P ∧R )→Q B .P ∨Q ∧R →┐R C .P ∨(P ∧Q ) D .(┐P ∨Q )?(P →Q ) 4.在指定的解释下,下列公式为真的是( ) A .(?x )(P (x )∨Q (x )),P (x ):x =1,Q (x ):x =2,论域:{1,2} B .(?x )(P (x )∧Q (x )),P (x ):x =1,Q (x ):x =2,论域: {1,2} C .(?x )(P (x ) →Q (x )),P (x ):x >2,Q (x ):x =0,论域:{3,4} D .(?x )(P (x )→Q (x )),P (x ):x >2,Q (x ):x =0,论域:{3,4} 5.对于公式(?x ) (?y )(P (x )∧Q (y ))→(?x )R (x ,y ),下列说法正确的是( ) A .y 是自由变元 B .y 是约束变元 C .(?x )的辖域是R(x , y ) D .(?x )的辖域是(?y )(P (x )∧Q (y ))→(?x )R (x ,y ) 6.设论域为{1,2},与公式(?x )A (x )等价的是( ) A .A (1)∨A (2) B .A (1)→A (2) C .A (1)∧A (2) D .A (2)→A (1) 7.设Z +是正整数集,R 是实数集,f :Z +→R , f (n )=log 2n ,则f ( ) A .仅是入射 B .仅是满射 C .是双射 D .不是函数 8.下列关系矩阵所对应的关系具有反对称性的是( ) A .???? ? ?????001110101 B .???? ? ?????101110001

离散数学集合论练习题

集合论练习题 一、选择题 1.设B = { {2}, 3, 4, 2},那么下列命题中错误的是( ). A .{2}∈ B B .{2, {2}, 3, 4}B C .{2}B D .{2, {2}}B 2.若集合A ={a ,b ,{ 1,2 }},B ={ 1,2},则( ). A . B A ,且BA B .B A ,但BA C .B A ,但BA D .B A ,且BA 3.设集合A = {1, a },则P (A ) = ( ). A .{{1}, {a }} B .{?,{1}, {a }} C .{?,{1}, {a }, {1, a }} D .{{1}, {a }, {1, a }} 4.已知AB ={1,2,3}, AC ={2,3,4},若2 B,则( ) A . 1?C B .2? C C .3?C D .4?C 5. 下列选项中错误的是( ) A . ??? B . ?∈? C . {}??? D .{}?∈? 6. 下列命题中不正确的是( ) A . x {x }-{{x }} B .{}{}{{}}x x x ?- C .{}A x x =?,则xA 且x A ? D . A B A B -=??= 7. A , B 是集合,P (A ),P (B )为其幂集,且A B ?=?,则()()P A P B ?=( ) A . ? B . {}? C . {{}}? D .{,{}}?? 8. 空集?的幂集()P ?的基数是( ) A . 0 B .1 C .3 D .4 9.设集合A = {1,2,3,4,5,6 }上的二元关系R ={a , b ∈A , 且a +b = 8},则R 具有的性质为( ). A .自反的 B .对称的 C .对称和传递的 D .反自反和传递的

离散数学疑难解析——集合论部分

离散数学疑难解析——集合论部分 第一章 集合 [集合的知识点] 1、集合、元素、集合的表示方法、子集、空集、全集、集合的包含、相等、幂集 2、集合的交、并、差、补等运算及其运算律(交换律、结合律、分配律、吸收律、 De Morgan 律等),文氏(Venn )图 3、序偶与迪卡尔积 [集合的疑难解析] 1.集合的概念 因为集合的概念大家在中学阶段已经学过,这里只多介绍了一个幂集的概念,所重点要对幂集加以掌握,一是掌握幂集的构成,一个集合A 的幂集是由A 的所有子集组成的集合。二是掌握幂集元数为2n ,其中n 是集合A 的元素个数。 2.集合恒等式的证明 通过对集合恒等式证明的练习,既可以加深对集合性质的理解与掌握;又可以为第三章命题逻辑中公式的基本等价式的应用打下良好的基础。实际上,本章做题是一种基本功训练,尤其要求学生重视吸收律和重要等价式在B A B A ~?=-证明中的特殊作用。 第二章 关系与映射 [二元关系的知识点] 1、关系、关系矩阵与关系图 2、复合关系与逆关系 3、关系的性质(自反性、对称性、反对称性、传递性) 4、关系的闭包(自反闭包、对称闭包、传递闭包) 5、等价关系与等价类 6、偏序关系与哈斯图(Hasse )、极大/小元、最大/小元、上/下界、最小上界、最大下界 7、函数及其性质(单射、满射、双射) 8、复合函数与反函数 [二元关系疑难解析] 1.关系的概念 关系的概念是第二章全章的基础,又是第一章集合概念的应用。因此,大家应该真正理解并熟练掌握二元关系的概念及关系矩阵、关系图表示。 2.关系的性质及其判定 关系的性质既是对关系概念的加深理解与掌握,又是关系的闭包、等价关系、半序关系的基础。对于四种性质的判定,可以依据教材中P49上总结的规律。这其中对传递性的判定,难度稍大一点,这里要提及两点:一是不破坏传递性定义,可认为具有传递性。如空关系具有传递性,同时空关系具有对称性与反对称性,但是不具有自反性。另一点是介绍一种判定传递性的“跟踪法”,即若()()()R a a R a a R a a i i ∈∈∈-,, ,,,,13221 ,则()R a a i ∈,1。如若()()R a b R b a ∈∈,,,,则有()R a a ∈,,且()R b b ∈,。 3.关系的闭包