离散数学:函数的增长率

离散数学 欧拉图实验

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

离散数学第五章

第五章函数Function 函数在数学、应用数学等许多领域,尤其计算机科学领域有着极其重要的作用。函数的思想、概念和应用无处不在,无时不在。 它主要是研究变量之间的关系和规律。函数的划分有很多种。有线性与非线性之分、连续与离散之分。例

如, x12345… y357911… 5.1 函数 假定A,B是两个非空集合,f : A→B,称f为A到B上的函数,对每个a∈A, 有唯一的f(a)∈B, 记做b = f(a)。 函数也叫映射mappings或变换transformations(错误) a叫做函数f的自变量argument,b被称为因变量,b=f(a)叫做函数的值value,也叫a的像。 例1. A={1,2,3,4}, B={a,b,c,d}, ,

则f是一个函数。 也可以简单记为, f={(1,a), (2,a), (3,d), (4,c)} 另外, g={(1,a), (1,b), (2,a), (4,c)} 因为对于1来说,1∈A, 不是唯一的f(1)∈B与之相对应,f(1)=a,并且f(1)=b, 因此g就不是一个函数。 例2. f:Z→Z, f(a)= f是函数。 例3.恒等函数1A(a)=a是函数。 正如,我们在第四章里表述的,函数f : A→B,b=f(a), 是一个特殊的二元关系,我们知道,由函数f可以确定一个关系,简单地,可以表示为(a,b)∈,或 ab。关系的特征函数为 或者简记为 因此,这样一来,我们以前所讨论的有关集合或关系的运算和性质对于函数来说,就可以完全适用。 例如,f:A→B, g:A→B, 函数的复合 设f:A→B,g:B→C,是函数,则g?f:A→C,是函数。 g?f(a)=g(f(a))

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

集合论部分 第四章、二元关系和函数 集合的笛卡儿积与二元关系有序对 定义由两个客体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.

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

实验一命题逻辑公式化简 【实验目的】加深对五个基本联结词(否定、合取、析取、条件、双条件)的理解、掌握利用基本等价公式化简公式的方法。 【实验内容】用化简命题逻辑公式的方法设计一个表决开关电路。 实验用例:用化简命题逻辑公式的方法设计一个 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"); } // 注:联结词不定义成函数,否则太繁 实验二命题逻辑推理 【实验目的】加深对命题逻辑推理方法的理解。【实验内容】用命题逻辑推理的方法解决逻辑

离散数学实验报告

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

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

离散数学第5章作业答案

第5章作业答案 1. 用枚举法给出下列集合 解(2) {-3,2} (4) {5,6,7,8,9,10,11,12,13,14,15} 2. 用抽象法说明下列集合 解(6) {x|?k (k∈I∧x = 2k + 1)} 6.写出下列集合的幂集 解(2) ρ({1, ?}) = {?, {1}, {?}, {1, ?}} (4) ρ({?, {a}, {?}}) = {?, {?}, {{a}}, {{?}}, {?, {a}}, {?, {?}}, {{a}, {?}}, {?, {a}, {?}}} 9. 证明:如果B?C,则ρ(B) ?ρ(C)。 证明任取x∈ρ(B),则x?B,又因为B?C,所以x?C,x∈ρ(C)。 10.设U = {1, 2, 3, 4, 5},A = {1, 4},B = {1, 2, 5}和C = {2, 4},试写出下列集合。解(8) ρ(A) -ρ(C) = {?, {1}, {4}, {1, 4}} - {?, {2}, {4}, {2, 4}} = {{1}, {1, 4}} 11.证明下列恒等式 (7) (A-B) -C = (A-C) - (B-C) 证法1 对于任意x, 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-B ∧ x?C ? x∈(A-B) -C 证法2 (A-C) - (B-C) = A?~C?~( B?~C) = A?~C? (~ B? C) = ( A?~C?~ B) ?( A?~C? C) =(A?~C?~ B) ?? = A?~B?~ C = (A-B) ?~ C = (A-B) -C 12.设A, B, C是集合,下列等式成立的条件是什么? (3) (A-B ) ? (A-C) = ? 解因为(A- B) ?( A-C) = (A?~B) ? ( A?~C) = A? (~B?~C) = A?~(B ?C) = A- (B ?C) 所以(A-B)?(A-C) = ?iff A- (B?C) = ?iff A? (B?C)

离散数学习题解答(第五章)格与布尔代数教学文案

离散数学习题解答(第五章)格与布尔代数

仅供学习与交流,如有侵权请联系网站删除 谢谢2 离散数学习题解答 习题五(第五章 格与布尔代数) 1.设〈L ,?〉是半序集,?是L 上的整除关系。问当L 取下列集合时,〈L ,?〉是否是格。 a) L={1,2,3,4,6,12} b) L={1,2,3,4,6,8,12} c) L={1,2,3,4,5,6,8,9,10} [解] a) 〈L ,?〉是格,因为L 中任两个元素都有上、下确界。 b) 〈L ,?〉不是格。因为L 中存在着两个元素没有上确界。 例如:8 12=LUB{8,12}不存在。 6 3 1 6 3 1 1

仅供学习与交流,如有侵权请联系网站删除 谢谢3 c) 〈L ,?〉不是格。因为L 中存在着两个元素没有上确界。 倒例如:4⊕6=LUB{4,6}不存在。 2.设A ,B 是两个集合,f 是从A 到B 的映射。证明:〈S ,?〉是 〈2B ,?〉的子格。其中 S={y|y=f (x),x ∈2A } [证] 对于任何B 1∈S ,存在着A 1∈2A ,使B 1=f (A 1),由于f(A 1)={y|y ∈ B ∧(?x)(x ∈A 1∧f (x)=y)}?B 所以B 1∈2B ,故此S ?2B ;又B 0=f (A)∈S (因为A ∈2A ),所以S 非空; 对于任何B 1,B 2∈S ,存在着A 1,A 2∈2A ,使得B 1=f (A 1),B 2=f (A 2),从而 L ∪B{B 1,B 2}=B 1∪B 2=f (A 1)f (A 2) =f (A 1∪A 2) (习题三的8的1)) 由于A 1∪A 2?A ,即A 1∪A 2∈2A ,因此f (A 1∪A 2)∈S ,即上确界L ∪B{B 1,B 2}存在。 对于任何B 1,B 2∈S ,定义A 1=f –1(B 1)={x|x ∈A ∧f (x)∈B 1},A 2=f -1 (B 2)={x|x ∈A ∧f (x)∈B 2},则A 1,A 2∈2A ,且显然B 1=f (A 1),B 2=f (A 2),于是 GLB{B 1,B 2}=B 1∩B 2=f (A 1)∩f (A 2) ?f (A 1∩A 2) (习题三的8的2)) 又若y ∈B 1∩B 2,则y ∈B ,且y ∈B 2。由于y ∈B 1=f (A 1)={y|y ∈B ∧(?x)(x ∈A 1∧f (x)=y)},于是存在着x ∈A 1,使f (x)=y ,但是f 7 1

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

《离散数学》 课程设计 学院计算机学院 学生姓名 学号 指导教师 评阅意见 提交日期 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维数组,以数 组的运算来实现二元关系的判断。 图示:

离散数学实验报告()

《离散数学》实验报告 专业网络工程 班级 姓名 学号 授课教师 二 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 是单射

离散数学及答案

全国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

离散数学实验一

实验报告 (2013 / 2014 学年第一学期) 课程名称离散数学 实验名称利用真值表法求取主析取范式 以及主合取范式的实现 实验时间2013 年10 月23 日指导单位计算机学院、软件学院 指导教师 学生姓名班级学号 学院(系) 计算机、软件 专业软件工程 学院

实验报告 实验名称利用真值表法求取主析取范式 指导教师 以及主合取范式的实现 实验类型验证实验学时 4 实验时间2013.10.23 一、实验目的和要求 1、编程实现用真值表法求取含三个以内变量的合式公式的主析取范式和主合取范式。 2、要求: 1)从屏幕输入含三个以内变量的合式公式(其中联结词按照从高到底 的顺序出现) 2)规范列出所输合式公式的真值表 3)给出相应主析取和主合取范式

二、实验内容 1.可用字符数组a记录输入的合式公式(其中'&'代表与,'|'代表或,'~' 代表非,'>'代表单条件,'='代表双条件) 2.多重循环显示真值表(1表示T,0表示F,先1后0)并对公式进行相 应赋值得数组b 3.函数递归计算各种赋值情况下b的取值 4.联接词运算符定义

三、实验设计及代码 1、求取真值表 void truetable(){ /*求真值表函数*/ char s1[30],s2[30],s3[30],s4[30]; int n,i,j,k,m; printf("您要计算真值表!\n"); printf("***************** 输入要计算的表达式(A~Z,a~z) ****" "************ \n"); printf("(其中'&'代表与 '|'代表或 '~'代表非 '>'代表单条件 " "'='代表双条件)\n"); gets(s4); printf(" \n您输入要计算的表达式为:%s \n",s4); n=got(s1, s4); if(!n) {printf("输入有误!\n");return;} m = (int)pow(2,n); printf("计算真值表如下:\n"); for(j=0;j<(int)strlen(s1);j++){ printf("%c ",s1[j]); } printf(" %s\n",s4); for(j=0;j

离散数学实验指导书

离散数学实验指导书2015 年3月6 日

绪言 通常对离散数学教学的认识就是上课老师讲述一个个概念、定理、公式和例题,学生背概念、公式,理解基础上记忆定理,然后据此做证明题、计算以及解题。实质上离散数学不仅仅是这些,还有实验。在理论教学过程中,学生的活动只是“智力活动”,或更为直接地说是解题活动,教师在上面讲离散数学,而学生则每天在课堂上听课并在纸上做题目。这样,对多数学生而言,离散数学的发现探索活动没有能够真正开展起来。 离散数学实验教学,通常由教师提出问题,让学生在计算机上做实验,利用小组合作学习或者组织全班讨论,开展研究性学习活动;实验过程中,依靠计算机,让学生主动参与发展、探究、解决问题,从中获得离散数学研究、解决实际问题的过程体验、情感体验,产生成就感,进而开发学生的创新潜能,因而对离散数学实验课程教学进行研究具有重要意义。 利用计算机进行离散数学实验教学,不仅是开展离散数学研究性学习的一种有效方式,而且也为数据结构及程序设计课程教学的开展提升了层次。知识经济时代对创新人才的需求与离散数学教育中忽视学生创造性能力培养的矛盾日益凸显。在教学中倡导研究性学习,开展离散数学实验课程教学的研究与探索,与当前社会对离散数学教学的需求是一致的。 目前国内外很少有人对离散数学实验课程教学进行研究,尤其是国内进行这方面研究的人员更少,人们更重视离散数学理论课程教学的研究,忽视了离散数学实验课程对理论课程教学的辅助与促进作用,也忽视了离散数学实验课程与数据结构等课程的有机联系。因而本学期离散数学课程组依据“2014培养方案”准备进行离散数学实验课程教学的研究与探索,以便更好的做好离散数学课程的教学改革工作。 主要包括四个部分:集合与关系、数理逻辑、代数系统、图论。要求学生了解算法,理解运用C或C++语言(也可以是其他高级程序设计语言)把书中的部分内容的算法编写出能在计算机上运行的程序的思想,掌握实现离散数学部分算法程序设计的基本编程技术。

离散数学习题解答第五章格与布尔代数.doc

离散数学习题解答 习题五(第五章 格与布尔代数) 1.设〈L ,?〉是半序集,?是L 上的整除关系。问当L 取下列集合时,〈L ,?〉是否是格。 a) L={1,2,3,4,6,12} b) L={1,2,3,4,6,8,12} c) L={1,2,3,4,5,6,8,9,10} [解] a) 〈L ,?〉是格,因为L 中任两个元素都有上、下确界。 b) 〈L ,?〉不是格。因为L 中存在着两个元素没有上确界。 例如:8 12=LUB{8,12}不存在。 6 3 1 6 3 1 12

c) 〈L ,?〉不是格。因为L 中存在着两个元素没有上确界。 倒例如:4⊕6=LUB{4,6}不存在。 2.设A ,B 是两个集合,f 是从A 到B 的映射。证明:〈S ,?〉是〈2B ,?〉的子 格。其中 S={y|y=f (x),x ∈2A } [证] 对于任何B 1∈S ,存在着A 1∈2A ,使B 1=f (A 1),由于f(A 1)={y|y ∈B ∧(?x)(x ∈ A 1∧f (x)=y)}? B 所以B 1∈2B ,故此S ?2B ;又B 0=f (A)∈S (因为A ∈2A ),所以S 非空; 对于任何B 1,B 2∈S ,存在着A 1,A 2∈2A ,使得B 1=f (A 1),B 2=f (A 2),从而 L ∪B{B 1,B 2}=B 1∪B 2=f (A 1)f (A 2) =f (A 1∪A 2) (习题三的8的1)) 由于A 1∪A 2?A ,即A 1∪A 2∈2A ,因此f (A 1∪A 2)∈S ,即上确界L ∪B{B 1,B 2}存在。 对于任何B 1,B 2∈S ,定义A 1=f –1(B 1)={x|x ∈A ∧f (x)∈B 1},A 2=f -1(B 2)={x|x ∈A ∧f (x)∈B 2},则A 1,A 2∈2A ,且显然B 1=f (A 1),B 2=f (A 2),于是 GLB{B 1,B 2}=B 1∩B 2=f (A 1)∩f (A 2) ?f (A 1∩A 2) (习题三的8的2)) 又若y ∈B 1∩B 2,则y ∈B ,且y ∈B 2。由于y ∈B 1=f (A 1)={y|y ∈B ∧(?x)(x ∈A 1∧f (x)=y)},于是存在着x ∈A 1,使f (x)=y ,但是f (x)=y ∈B 2。故此x ∈A 2=f -1(B 2)={x|x ∈A ∧f(x)∈B 2},因此x ∈A 1∩A 2,从而y=f (x)∈f (A 1∩A 2),所以 7 1

《应用离散数学》函数

§3.5 函数 习题3.5 1. 设函数N N →:f 如下: ?????=为偶数若为奇数 若x x x x f 21)( 求)0(f ,})0({f ,)3(f ,})3({f ,})6420({Λ, ,,,f ,})97531({,,,,f ,})864({,,f 。 解 略 2. 设函数Y X f →:,X B X A ??,,证明 (1))()()(B f A f B A f Y Y = (2))()()(B f A f B A f I I ? 解 略 3. 设可逆函数Y X f →:,Y B Y A ??,,证明 (1))()()(1 1 1 B f A f B A f ---=Y Y (2))()()(1 1 1 B f A f B A f ---?I I 解(1)因为 )(1 B A f y Y -∈))((y x f B A x x =∧∈??Y )))(())(((y x f B x y x f A x x =∧∈∨=∧∈?? ))(())((y x f B x x y x f A x x =∧∈?∨=∧∈?? )()(1 1 B f y A f y --∈∨∈?)()(1 1 B f A f y --∈?Y 所以)()()(1 1 1 B f A f B A f ---=Y Y (2)因为 )(1 B A f y I -∈))((y x f B A x x =∧∈??I )))(())(((y x f B x y x f A x x =∧∈∧=∧∈?? ))(())((y x f B x x y x f A x x =∧∈?∧=∧∈?? )()(1 1 B f y A f y --∈∧∈?)()(1 1 B f A f y --∈?I 所以)()()(1 1 1 B f A f B A f ---=Y Y 4. 给定函数f 和集合B A 、如下: (1)}4{}8{)(===→B A x x f f ,,,:R R (2) }21{}1{2)(,,,,:===→+B A x f f x R R (3)}32{}5{1)(><==>+=

离散数学第五章习题

第五章习题 07年昆明理工 1、在自然数集合N上,下列哪种运算是可结合的。() A. a*b=a-b B.a*b=max(a,b) C. a*b=a+2b D.a*b=|a-b| 2 、设Z为整数集合,+为普通加法,则代数系统中,Z对加法的幺元为_______,Z对+的零元为_______,对任意x∈N,x-1=_______。 3、设是一个代数系统,其中*是一个二元运算使任意a,b∈A,有a*b=a. (1)证明*运算是可结合的。 (2)说明*运算是否可交换。 06年清华大学 1设是二元代数,元素a∈A有左逆元a l-1和右逆元a r-1,若运算满足()律,则a l-1=a r-1 A.结合 B.交换 C.等幂 D. 分配 2 设为实数集R上的二元运算, x,y∈R有x y=x+y-2xy,说明运算是否为可交换的、可结合的?确定运算的幺元、零元和所有幂等元及可逆元素的逆元。

其他习题 1、已知集合A={1,2,…,10},下面定义的哪些运算关于集合A是不封闭的.( ) A. x*y=max(x,y) B. x*y=min(x,y) C. x*y=GCD(x,y) ,即x,y的最大公约数 D. x*y=LCM(x,y),即x,y的最小公倍数 2、设Z*是正整数集合,+,—,*,△分别是数的普通加法、减法,乘法和平方运算,则下列()不能构成代数系统。 A. B. C. < Z*,*> D.< Z*,△> 3、设*是集合A上的二元运算,若A中一个元素e,它即是_______,又是_______,则称e是A中关于运算*的幺元。 4、设S=R-{-1},R为实数集,任意a,b∈S,a*b=a+b+ab 说明是否构成群。

离散数学实验报告

《离散数学》 实验报告 题目 专业 学号 姓名 指导教师 提交日期

实验一五种连结词的逻辑运算 一.实验目的 用C语言实现两个命题变元的合取、析取、蕴涵和等价表达式的计算。熟悉连接词逻辑运算规则,利用程序语言实现逻辑这几种逻辑运算。 二.实验内容 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、蕴涵和等价四种运算的的真值。要求对输入内容进行分析,如果不符合0、1条件需要重新输入,程序有良好的输入输出界面。 三. 实验过程 1. 算法分析: 编程语言为c语言 合取/\:p,q都为1的时候为1,其他为0 析取\/:p,q都为0的时候为0,其他为1 蕴含->:p为1,q为0时为0,其他为1 等价<->:p,q同真同假 流程图

2. 程序代码: #include int main() { int p,q,i,t; printf("************************************************\n"); printf("*** ***\n"); printf(" 欢迎进入逻辑运算软件\n"); printf("*** ***\n"); printf("************************************************\n"); do{ printf("请输入p的值(0或1)"); scanf("%d",&p); if(p!=0&&p!=1) printf("输入有误"); }while(p!=0&&p!=1);

do{ printf("请输入q的值(0或1)"); scanf("%d",&q); if(q!=0&&q!=1) printf("输入有误"); }while(q!=0&&q!=1); do{ printf("请选择要进行的操作\n"); printf("1:合取\n2:析取\n3:蕴含\n4:等价\n"); scanf("%d",&i); switch(i){ case 1:{ if(p&&q) printf("合取运算:p/\q=1\n"); else printf("合取运算:p/\q=0\n"); break; } case 2:{ if(p||q) printf("析取运算:p\/q=1\n"); else printf("析取运算:p\/q=0\n"); break; } case 3:{ if(p&&!q) printf("蕴含:p->q=0\n"); else printf("蕴含:p->q=1\n"); break;} case 4:{ if((p&&q)||(!p&&!q)) printf("等价运算:p<->q=1\n"); else printf("等价运算:p<->q=0\n"); break; } }printf("是否继续运算1\\0\n"); scanf("%d",&t); }while(t); return 0; }

相关文档
最新文档