实验二离散报告

实验二离散报告
实验二离散报告

实验报告

课程名称离散数学

实验名称集合上二元关系性质判定的实现指导单位计算机科学与技术系

实验报告

结果正确

离散数学实验报告

《离散数学》实验报告专业网络工程 班级 姓名 学号 授课教师 二 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; else d=1; printf("非P、Q的结果为%d,%d\n",c,d);

离散时间信号的DTFT实验报告

实验一 离散时间系统的时域分析 一、实验目的 1. 运用MATLAB 仿真一些简单的离散时间系统,并研究它们的时域特性。 2. 运用MATLAB 中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。 二、实验原理 离散时间系统其输入、输出关系可用以下差分方程描述: ∑=∑=-=-M k k N k k k n x p k n y d 00] [][ 当输入信号为冲激信号时,系统的输出记为系统单位冲激响应 ][][n h n →δ,则系统响应为如下的卷积计算式: ∑∞ -∞=-= *=m m n h m x n h n x n y ][][][][][ 当h[n]是有限长度的(n :[0,M])时,称系统为FIR 系统;反之,称系统为IIR 系统。在MATLAB 中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。 例1 clf; n=0:40; a=1;b=2; x1= 0.1*n; x2=sin(2*pi*n); x=a*x1+b*x2; num=[1, 0.5,3]; den=[2 -3 0.1]; ic=[0 0]; %设置零初始条件 y1=filter(num,den,x1,ic); %计算输入为x1(n)时的输出y1(n) y2=filter(num,den,x2,ic); %计算输入为x2(n)时的输出y2(n) y=filter(num,den,x,ic); %计算输入为x (n)时的输出y(n) yt= a*y1+b*y2; %画出输出信号 subplot(2,1,1) stem(n,y); ylabel(‘振幅’); title(‘加权输入a*x1+b*x2的输出’);

离散数学实验报告

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

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

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.1&1.2 判断下列语句是否为命题,若是命题请指出是简单命题还 是复合命题.并将命题符号化,并讨论它们的真值. (1) √2是无理数. 是命题,简单命题.p:√2是无理数.真值:1 (2) 5能被2整除. 是命题,简单命题.p:5能被2整除.真值:0 (3)现在在开会吗? 不是命题. (4)x+5>0. 不是命题. (5) 这朵花真好看呀! 不是命题. (6) 2是素数当且仅当三角形有3条边. 是命题,复合命题.p:2是素数.q:三角形有3条边.p?q真值:1 (7) 雪是黑色的当且仅当太阳从东方升起. 是命题,复合命题.p:雪是黑色的.q:太阳从东方升起. p?q真值:0 (8) 2008年10月1日天气晴好. 是命题,简单命题.p:2008年10月1日天气晴好.真值唯 一. (9) 太阳系以外的星球上有生物. 是命题,简单命题.p:太阳系以外的星球上有生物.真值唯一. (10) 小李在宿舍里. 是命题,简单命题.P:小李在宿舍里.真值唯一. (11) 全体起立! 不是命题. (12) 4是2的倍数或是3的倍数. 是命题,复合命题.p:4是2的倍数.q:4是3的倍数.p∨q 真值:1 (13) 4是偶数且是奇数.

是命题,复合命题.P:4是偶数.q:4是奇数.p∧q真值:0 (14) 李明与王华是同学. 是命题,简单命题.p: 李明与王华是同学.真值唯一. (15) 蓝色和黄色可以调配成绿色. 是命题,简单命题.p: 蓝色和黄色可以调配成绿色.真值:1 1.3 判断下列各命题的真值. (1)若 2+2=4,则 3+3=6. (2)若 2+2=4,则 3+3≠6. (3)若 2+2≠4,则 3+3=6. (4)若 2+2≠4,则 3+3≠6. (5)2+2=4当且仅当3+3=6. (6)2+2=4当且仅当3+3≠6. (7)2+2≠4当且仅当3+3=6. (8)2+2≠4当且仅当3+3≠6. 答案: 设p:2+2=4,q:3+3=6,则p,q都是真命题. (1)p→q,真值为1. (2)p→┐q,真值为0. (3)┐p→q,真值为1. (4)┐p→┐q,真值为1. (5)p?q,真值为1. (6)p?┐q,真值为0. (7)┐p?q,真值为0. (8)┐p?┐q,真值为1. 1.4将下列命题符号化,并讨论其真值。 (1)如果今天是1号,则明天是2号。 p:今天是1号。 q:明天是2号。 符号化为:p→q 真值为:1 (2)如果今天是1号,则明天是3号。 p:今天是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维数组,以数 组的运算来实现二元关系的判断。 图示:

《离散数学》试习题及答案

欢迎共阅 一、填空题 1设集合A,B ,其中A ={1,2,3},B={1,2},则A-B =____________________; ?(A)-?(B)=__________________________. 2.设有限集合A,|A|=n,则|?(A×A)|=__________________________. 3.设集合A={a ,b },B={1,2},则从A 到B 的所有映射是_______________________________________,其中双射的是__________________________. 4.6设A 、7.设R 8.9.设集合 R 1?R 2 R 1210.11设A ∩13.14.设一阶逻辑公式G=?xP(x)??xQ(x),则G 的前束范式是_______________________________. 16.设谓词的定义域为{a ,b },将表达式?xR(x)→?xS(x)中量词消除,写成与之对应的命题公式是__________________________________________________________________________. 17.设集合A ={1,2,3,4},A 上的二元关系R ={(1,1),(1,2),(2,3)},S ={(1,3),(2,3),(3,2)}。则R ?S =_____________________________________________________, R 2=______________________________________________________. 二、选择题

离散数学实验报告()

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

离散数学题目大汇总

离散数学试题一(A 卷答案) 一、(10分)证明(A ∨B )(P ∨Q ),P ,(B A )∨P A 。 二、(10分)甲、乙、丙、丁4个人有且仅有2个人参加围棋优胜比赛。关于谁参加竞赛,下列4 种判断都是正确的: (1)甲和乙只有一人参加; (2)丙参加,丁必参加; (3)乙或丁至多参加一人; (4)丁不参加,甲也不会参加。 请推出哪两个人参加了围棋比赛。 三、(10分)指出下列推理中,在哪些步骤上有错误为什么给出正确的推理形式。 (1)x (P (x ) Q (x )) P (2)P (y )Q (y ) T (1),US (3)xP (x ) P (4)P (y ) T (3),ES (5)Q (y ) T (2)(4),I (6)xQ (x ) T (5),EG 四、(10分)设A ={a ,b ,c},试给出A 上的一个二元关系R ,使其同时不满足自反性、反自反性、 五、(15分)设函数g :A →B ,f :B →C , (1)若f o g 是满射,则f 是满射。 (2)若f o g 是单射,则g 是单射。 六、(15分)设R 是集合A 上的一个具有传递和自反性质的关系,T 是A 上的关系,使得T R 且R ,证明T 是一个等价关系。 七、(15分)若是群,H 是G 的非空子集,则的子群对任意的a 、b ∈H 有 a * b -1∈H 。 八、(15分)(1)若无向图G 中只有两个奇数度结点,则这两个结点一定是连通的。 (2)若有向图G 中只有两个奇数度结点,它们一个可达另一个结点或互相可达吗 离散数学试题一(B 卷答案) 一、(15分)设计一盏电灯的开关电路,要求受3个开关A 、B 、C 的控制:当且仅当A 和C 同时关闭或B 和C 同时关闭时灯亮。设F 表示灯亮。 u v w

离散数学考试题详细答案

离散数学考试题(后附详细答案) 一、命题符号化(共6小题,每小题3分,共计18分) 1.用命题逻辑把下列命题符号化 a)假如上午不下雨,我去瞧电影,否则就在家里读书或瞧报。 设P表示命题“上午下雨”,Q表示命题“我去瞧电影”,R表示命题“在家里读书”,S表示命题“在家瞧报”,命题符号化为:(?P?Q)∧(P?R∨S) b)我今天进城,除非下雨。 设P表示命题“我今天进城”,Q表示命题“天下雨”,命题符号化为:?Q→P或?P→Q c)仅当您走,我将留下。 设P表示命题“您走”,Q表示命题“我留下”,命题符号化为: Q→P 2.用谓词逻辑把下列命题符号化 a)有些实数不就是有理数 设R(x)表示“x就是实数”,Q(x)表示“x就是有理数”,命题符号化为: ?x(R(x) ∧?Q(x)) 或??x(R(x) →Q(x)) b)对于所有非零实数x,总存在y使得xy=1。 设R(x)表示“x就是实数”,E(x,y)表示“x=y”,f(x,y)=xy, 命题符号化为: ?x(R(x) ∧?E(x,0) →?y(R(y) ∧E(f(x,y),1)))) c) f 就是从A到B的函数当且仅当对于每个a∈A存在唯一的b∈B,使得f(a)=b、 设F(f)表示“f就是从A到B的函数”, A(x)表示“x∈A”, B(x)表示“x∈B”,E(x,y)表示“x=y”, 命题符号化为:F(f)??a(A(a)→?b(B(b) ∧ E(f(a),b) ∧?c(S(c) ∧ E(f(a),c) →E(a,b)))) 二、简答题(共6道题,共32分) 1.求命题公式(P→(Q→R))?(R→(Q→P))的主析取范式、主合取范式,并写出所有成真赋 值。(5分) (P→(Q→R))?(R→(Q→P))?(?P∨?Q∨R)?(P∨?Q∨?R) ?((?P∨?Q∨R)→(P∨?Q∨?R)) ∧ ((P∨?Q∨?R) →(?P∨?Q∨R))、 ?((P∧Q∧?R)∨ (P∨?Q∨?R)) ∧ ((?P∧Q∧R) ∨(?P∨?Q∨R)) ?(P∨?Q∨?R) ∧(?P∨?Q∨R) 这就是主合取范式 公式的所有成真赋值为000,001,010,100,101,111,故主析取范式为 (?P∧?Q∧?R)∨(?P∧?Q∧R)∨(?P∧Q∧?R)∨(P∧?Q∧?R)∨(P∧?Q∧R)∨(P∧Q∧R) 2.设个体域为{1,2,3},求下列命题的真值(4分) a)?x?y(x+y=4) b)?y?x (x+y=4) a) T b) F 3.求?x(F(x)→G(x))→(?xF(x)→?xG(x))的前束范式。(4分) ?x(F(x)→G(x))→(?xF(x)→?xG(x)) ??x(F(x)→G(x))→(?yF(y)→?zG(z))??x(F(x)→G(x))→?y?z(F(y)→G(z)) ??x?y?z((F(x)→G(x))→ (F(y)→G(z))) 4.判断下面命题的真假,并说明原因。(每小题2分,共4分) a)(A?B)-C=(A-B) ?(A-C) b)若f就是从集合A到集合B的入射函数,则|A|≤|B| a) 真命题。因为(A?B)-C=(A?B)?~C=(A?~C)?(B?~C)=(A-C)?(B-C) b) 真命题。因为如果f就是从集合A到集合B的入射函数,则|ranf|=|A|,且ranf?B,故命题 成立。

离散数学实验报告

离散数学实验报告 姓名: 学号: 班级: 实验地点: 实验时间:

1 实验目的和要求 运用最小生成树思想和求最小生成树程序解决实际问题。实际问题描述如下: 八口海上油井相互间距离如下表,其中1号井离海岸最近,为5km 。问从海岸经1号井铺设油管把各井连接起来,怎样连油管长度最短(为便于检修,油管只准在油井处分叉)? 2 实验环境和工具 实验环境:Windows 7 旗舰版 工具:Dev-C++ 5.8.3 3 实验过程 3.1 算法流程图

3.2程序核心代码 //油管铺设问题Prim算法实现 #include #include using namespace std; #define MAXV 10 #define INF 32767 //INF表示∞ typedef int InfoType; typedef struct{ int no; //顶点编号 InfoType info; //顶点其他信息 } VertexType; //顶点类型 typedef struct{ //图的定义 float edges[MAXV][MAXV]; //邻接矩阵 int vexnum; //顶点数 VertexType vexs[MAXV]; //存放顶点信息 } MGraph; //图的邻接矩阵类型

/*输出邻接矩阵g*/ void DispMat(MGraph g){ int i,j; for (i=0;i

离散数学实验报告格式

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

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

实验一联结词的运算 一.实验目的 通过上机实验操作,将命题连接词运算融入到C语言的程序编写中,一方面加强对命题连接词运算的理解,另一方面通过编程实现命题连接词运算,帮助学生复习和锻炼C语言知识,将理论知识与实际操作结合,让学生更加容易理解和记忆命题连接词运算。二.实验原理 (1) 非运算, 符号: ,当时,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为为F时,命题P→Q的真值才为假;否则,P→Q 的真值为真。 (6) 等价, 符号: ?, 当且仅当的真值不同时,命题P?Q的真值才为假;否则,P→Q 的真值为真。 三.实验内容 编写一个程序实现非运算、合取运算、析取运算、异或运算、蕴涵运算、等价运算。四.算法程序 <> () { ; ("请选择运算方式\n"); ("1.析取\n"); ("2.合取\n"); ("3.非\n"); ("4.蕴含\n"); ("5.等价\n");

m; (""); ( m>=1 m<=4 ) { ("请输入P Q的值\n"); (" " ); = 1; (m) { 1( ( >= 1)( < 4 ) ) { (0 0) ("P 析取Q = 0\n"); ("P 析取Q = 1\n"); ; (4) ; ("请输入P Q的值\n"); (" " ); } ; 2( ( >= 0)( < 4 ) ) { (1 1) ("P 合取Q = 1\n"); ("P 合取Q = 0\n"); ; (4) ; ("请输入P Q的值\n"); (" " ); } ; 3( ( >= 0)( < 4 ) ) { (0) ("非Q = 1\n"); ("非Q = 0\n");

离散实验报告

离散实验报告 专业:数学与应用数学 班级:091121 学号:2009112125 姓名:张鼎珩 日期:2011.06.23

实验内容: 实验一真值计算 实验二两个集合运算 实验三关系闭包计算 实验四关系与函数 进行试验: 实验一真值计算 一、实验目的 熟悉联结词合取、析取、条件和双条件的概念,编程求其真值。 二、实验内容 (1)求任意一个命题公式的真值表:从键盘输入两个命题P 和Q 的真值,求它们的合取、析取、蕴含和等价的真值 (2)利用真值表求任意一个命题公式的主范式 (3)利用真值表进行逻辑推理 三实验程序: #include/*标准输入输出头文件*/ #include/*该文件包含了的C语言标准库函数的定义*/ #include/*字符串数组的函数定义的头文件*/ #include/*通用输入输出库*/ #include

#define N 50 void 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==

离散数学关系性质的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; }

离散数学题库及答案

数理逻辑部分 选择、填空及判断 ?下列语句不是命题的( A )。 (A) 你打算考硕士研究生吗? (B) 太阳系以外的星球上有生物。 (C) 离散数学是计算机系的一门必修课。 (D) 雪是黑色的。 ?命题公式P→(P∨?P)的类型是( A ) (A) 永真式(B) 矛盾式 (C) 非永真式的可满足式(D) 析取范式 ?A是重言式,那么A的否定式是( A ) A. 矛盾式 B. 重言式 C. 可满足式 D.不能确定 ?以下命题公式中,为永假式的是( C ) A. p→(p∨q∨r) B. (p→┐p)→┐p C. ┐(q→q)∧p D. ┐(q∨┐p)→(p∧┐p) ?命题公式P→Q的成假赋值是( D ) A. 00,11 B. 00,01,11 C.10,11 D. 10 ?谓词公式) x xP∧ ?中,变元x是 ( B ) R , ( x ) (y A. 自由变元 B. 既是自由变元也是约束变元 C. 约束变元 D. 既不是自由变元也不是约束变元 ?命题公式P→(Q∨?Q)的类型是( A )。 (A) 永真式 (B) 矛盾式 (C) 非永真式的可满足式 (D) 析取范式 ?设B不含变元x,) x x→ ?等值于( A ) A ) ( (B A. B ( D. B x xA→ x ?) ( ( ? C. B x∧ A ?) ( B. ) ?) xA→ x ) ( A x (B x∨ ?下列语句中是真命题的是( D )。 A.你是杰克吗? B.凡石头都可练成金。 C.如果2+2=4,那么雪是黑的。 D.如果1+2=4,那么雪是黑的。 ?从集合分类的角度看,命题公式可分为( B ) A. 永真式、矛盾式 B. 永真式、可满足式、矛盾式 C. 可满足式、矛盾式 D. 永真式、可满足式 ?命题公式﹁p∨﹁q等价于( D )。 A. ﹁p∨q B. ﹁(p∨q) C. ﹁p∧q D. p→﹁q ?一个公式在等价意义下,下面写法唯一的是( D )。 (A) 范式 (B) 析取范式 (C) 合取范式 (D) 主析取范式 ?下列含有命题p,q,r的公式中,是主析取范式的是( D )。

离散数学实验报告

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

实验一五种连结词的逻辑运算 一.实验目的 用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; }

离散数学实验

离散数学实践内容 ●内容: 从下列题目中任意选择1个,完成相应写作或编程,并制作一个技术报告,包括书面报告和口头报告两部分。 ●目的: ? 选择一个自己感兴趣的主题作较深入的学习和研究。 ? 培养阅读和查找技术文献的能力。 ? 作技术报告的能力(口头和书面) ●报告的具体要求: a. 书面报告: word文档文字5页左右(不包括图表),一般包括以下部分: i. 摘要–对所选题目做一个简短、完整的描述。 ii. 目的–介绍选题目的,为什么这个题目有趣/有用。 iii. 背景–介绍相关定义、术语,或其它背景知识。 iv. 主体部分–介绍具体内容,从所选题目中学到什么新的知识?前人的观点,和你的观点?通过对比、引用、论证等方法来陈述。 v. 结论–总结新知识点及其用途。 vi. 引用的文献。 b. 口头: 制作ppt,并作一个15分钟左右的口头报告,用通俗易懂的方式把 你所获得的知识和大家分享。口头报告时间是在第6周到第16周《离散数学应用实践课程》中,按照选课学生的学号顺序进行演讲。 ●选题内容 1.讨论逻辑悖论,例如:说谎者悖论,纸牌悖论,理发师悖论等,说明如何解决它们。 2.讨论模糊逻辑怎样用于实际应用。 3.介绍Prolog逻辑程序设计语言(一个用自然语言进行人机对话的软件工具),解释Prolog 是如何使用消解的。 4. “自动定理证明”(ATP)是使用计算机来完成机械地证明定理的任务。讨论自动定理证明 的目标和应用,以及在开发自动定理证明器上取得的进步。 5. 讨论函数概念的发展历史及其应用。 6. 鸽巢原理又名抽屉原理或狄利克雷原理,它由德国数学家狄利克雷 (Divichlet,1805-1855)首先发现。鸽巢原理在组合学中占据着非常重要的地位,它常被用来证明一些关于存在性的数学问题,并且在数论和密码学中也有着广泛的应用。讨论它的历史和应用。 7. 描述关系数据库的基本原理。关系数据库与其它类型的数据库相比,使用面有多 广?

离散数学实验报告

离散数学实验报告 题目:判断关系R是否为对称关系院系: 班级: 姓名: 学号:

【实验目的】 学会用编程实现判断关系是否为对称关系,反对称关系,既对称又反对称,既不对称又不反对称。 【实验内容】 编写C++程序,实现对关系矩阵R是否为对称关系、反对称关系、既是对称关系又是反对称关系、既不是对称关系又不是反对称关系的判断,并输出结果。关系矩阵R的内容参照离散数学书 p54-【例2-28】【例2-29】【例2-30】. 增加内容:根据实际程序编写情况,完成对关系矩阵R是否为传递关系的判断.(不包含于报告中) 【实验原理】 对称性:设R含于A×A,对于任意x,y∈A,如果(x,y)∈R,那么有(y,x)∈R。 反对称性:设R含于A×A,对于任意x,y∈A,若x≠y,如果(x,y)∈R 与(y,x)∈R不能同时成立。 Ia(恒等关系)中的元素不影响对称性与反对称性。 【程序代码】 #include int main() { int a[10][10]; int i,j,m; int x,y,z,w; x=y=z=w=0; printf("输入关系矩阵(方阵)行列数:\n"); scanf("%d",&m); printf("输入关系矩阵:\n"); for(i=0;i

{ if(i!=j) { if(a[i][j]==1&&a[j][i]==1) x++; if(a[i][j]==1&&a[j][i]!=1) y++; } else { if(a[i][j]==1) z++; } } } if(x!=0&&y==0) printf("关系矩阵为对称关系\n"); if(y!=0&&x==0) printf("关系矩阵为反对称关系\n"); if(z!=0&&x==0&&y==0) printf("关系矩阵既为对称关系也为反对称关系:"); if(x&&y) printf("关系矩阵既不是对称关系也不是反对称关系:"); return 0; } 【实验结果】 【实验心得】 此次实验让我深刻的体会到离散数学关系性质的相关内容也让我深刻地体会到关