当前位置:文档之家› 离散数学实验报告

离散数学实验报告

离散数学实验报告
离散数学实验报告

“离散数学”实验报告

(实验C)

专业:自动化

班级:0804班

学号:000000

姓名:何有*

日期:2010年10月31日

一、实验目的

通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算,包括联结词、真值表、主范式等,提高学生编写实验报告、总结实验结果的能力,培养学生的逻辑思维能力和算法设计的思想,能够独立完成简单的算法设计和分析,进一步用它们来解决实际问题,帮助学生学习掌握C/C++语言程序设计的基本方法和各种调试手段,使学生具备程序设计的能力。

二、实验内容

求任意一个命题公式的真值表,并根据真值表求主范式。

三、实验环境

C语言编程环境。

四、实验原理和实现过程

(一)、关于命题公式的形式和运算符(即联结词)的运算

首先根据离散数学的相关知识,命题公式由命题变元和运算符(即联结词)组成,命题变元用大写字母英文表示(本次试验没有定义命题常元T和F,即T、F都表示命题变元),每个命题变元都有两种真值指派0和1,对应于一种真值指派,命题公式有一个真值,由所有可能的指派和命题公式相应的真值按照一定的规范构成的表格称为真值表。

目前离散数学里用到的包括扩充联结词总共有九种,即析取(或)、合取(与)、非、蕴含、等值、与非、或非、异或、蕴含否定,常用的为前五种,其中除了非运算为一元运算以外,其它四种为二元运算。所以本次实验设计时只定义了前五种运算符,同时用“/”表示非,用“*”表示合取,用“+”表示析取,用“>”表示蕴含,用“:”表示等值,且这五种运算符的优先级依次降低,如果需用括号改变运算优先级,则用小括号()改变。

以下为上述五种运算符运算时的一般真值表,用P和Q表示命题变元:1.非,用“/”表示

2.合取(与),用“*”表示

3.析取(或),用“+”表示

4.蕴含,用“>”表示

5.等值,用“:”表示

(二)、命题公式真值的计算

对于人来说,计算数学表达式时习惯于中缀表达式,例如a*b+c,a*(b+c)等等,而对于计算机来说,计算a*b+c还好,计算a*(b+c)则困难,因为括号的作用改变了运算的顺序,让计算机识别括号而改变计算顺序显得麻烦。经理论

和实践研究,用一种称之为后缀表达式(逆波兰式)的公式形式能让计算机更容易计算表达式的真值。例如上面的a*(b+c),其后缀表达式为abc+*,计算时从左边开始寻找运算符,然后按照运算符的运算规则将与其相邻的前面的一个(非运算时为一个)或两个(其它四种运算为两个)操作数运算,运算结果取代原来的运算符和操作数的位置,然后重新从左边开始寻找运算符,开始下一次计算,比如上式,从左边开始寻找运算符,先找到+,则计算b+c,结果用d表示,这时后缀表达式变为ad*,又重新开始从左边开始寻找运算符,找到*,则计算a*d,运算结果保存在原来ad*所占的位置,即a位,也就是第一位。

下面是求取后缀表达式的规则:

1.从中缀表达式左边起逐个字符判断,如果是命题变元,则直接输出;如果是运算符,则将其与当前有效栈顶字符(即非空,可能为运算符或左半括号;如果栈为空,则直接入栈)的优先级比较,如果大于栈顶字符优先级,则直接入栈,如果小于或等于栈顶字符优先级,则弹出栈中字符并输出,直到大于栈顶字符优先级;

2.如果遇到左半括号,则直接入栈,也就是栈外左半括号的优先级最高,入栈以后,其优先级变为最低,也就是不管下一个字符是什么,该左半括号都不出栈,当且仅当遇到与其对应的右半括号时(遇到右半括号前,所有的字符按1中的规则或左半括号的入栈规则入栈或出栈),将栈中该左半括号以上的字符按照出栈规则弹出并输出,最后该左半括号出栈并和右半括号一起被丢掉(右半括号永不入栈),余下的字符不出栈;

3.按照上述规则判断命题公式中的所有字符后,如果栈中还有有效字符,则依次弹出并输出。

以/A*(B+/C)为例,说明后缀表达式的求法:

求得后缀表达式后再计算其真值,计算方法上面已叙述过,在此不再赘述。

(三)、程序流程框架

按照实验要求的功能,本程序可分为命题公式输入模块、中缀表达式转化为后缀表达式模块、计算后缀表达式模块等几大模块,总体流程框架如下:

1、输入命题公式

本程序定义:命题变元用大写英文字母表示,“/”表示非,“*”表示与,“+”表示或,“>”表示蕴含,“:”表示等值,括号非汉字状态下的小括号,有几个括号时都用小括号表示。定义函数char *getformula()完成合法命题公式的输入,无入口参数,返回合法命题公式的地址。其流程图如下:

2、将中缀表达式转化为后缀表达式

本程序定义:栈外(、:、>、+、*、/的优先级依次升高,分别用1、2、3、4、5、6表示,栈中空字符优先级最低,为0。

3、计算后缀表达式真值

后缀表达式的计算的流程图没有像上面所描述的那么简单(或者还有其他方法),比如二进制加法器、真值指派等问题上面没有详细写出,关于操作数的运算部分也没有具体给出,因为页面有限。

由于时间有限,还有其它一些模块也没有详细给出。

五、实验数据及结果分析

1.程序界面

程序界面如下:

2.容错功能

本程序尽可能地考虑了所有的错误形式,比如公式中出现字符串“A/”、“AB”、“*+”、“(+”、“)/”、“*)”、“()”、“)(”、“a+”等等类似形式均被认为输入错误,要求重新输入,还有开头第一个字符如果是+、*、>、:或者最后一个字符不是大写英文字母或者‘)’同样被认为错误。本程序允许公式中出现空格,处理时会将空格去掉。所以输入/、*、+、>、:、小括号、空格、大写英文字母、回车符以外的字符均会认为无效或者错误。因此本程序的容错功能较强。例子如下图:

3.合法公式的计算

本程序允许输入的命题公式字符数不超过100,所以有一定的限制。命题变元可用二十六个大写英文字母表示。相应的一些计算如下(部分截图未截取输入说明部分):

(1)、非运算

(2)、与运算

(3)、或运算

(4)、蕴含

(5)、等值

(6)综合公式

由于截图面积有限,所以未截取输入说明部分:

上面输入的每个命题公式都是随机输入的,其结果经过手工验证证明是正确的。所以,本程序可以满足题目的要求。

六、其他收获和体会

写这个程序花了不少时间,而且时间相对集中,除了上课外,在电脑前都是在做这个,连续做了几天。刚开始时并没有完全按照软件设计的步骤去写,而是知道总体方框后,一个模块一个模块去求解,至于每个模块怎么写,则是在写的过程中逐步建立和完善的。

有些知识没有学到,比如如何求逆波兰式,只得借书回来看,上网找到的资料不够详细或者几乎没解释,难以理解。当然了,程序是自己写的,自己看得懂就好多了,别人又不一定要看,所以我也没加多少注释。求得逆波兰式后,不知自己怎么想的,好像知道怎么计算它的值,看书之后真是那样求解的,突然间有种莫名的喜悦。

刚开始也没有实现蕴含和等值的功能,因为对与、或、非更熟悉,所以只处理了这部分,实现这部分的功能后,才把蕴含和等值的功能加上去,这时就简单得多了,只是稍稍补充和改动就可以了。而主析取范式和主合取范式也是这样的,刚开始并没有求这个部分,只是在最后时才加上去的。只不过实现了前面的要求,后面的就显得简单多了。

本程序有个缺点就是,没有用动态分配内存的方法,只是定义了一般够用的数组容量,容量为100个字符,这样的话造成硬件资源的浪费,灵活性不够。

这次试验让我学到了一些新知识,也让我认识到自己在编程方面的一些不足。

以后继续努力!

七、源程序清单

后面是源程序清单,由于word软件与所用编程软件界面大小不一样,所以把代码复制过来可能出现一行变两行、不对齐等情况。

/*========================================================================*/ /* 求取任意命题公式的真值表及主范式 */ /*========================================================================*/

#include

#include

#include

/*-----------------------------------------------------------------------*/ // 读入命题公式,并判断其合法性,若非法则重新输入

/*-----------------------------------------------------------------------*/ char *pp,formula[100]={0};

int valid=1;

char *getformula()

{

char temp[100]={0},tempsign[3]={0};

int i,j,len,flag=0;

printf("\n请输入命题公式\n");

printf("\n\"/\"表示非,\"*\"表示合取,\"+\"表示析取,\">\"表示蕴含,\":\"表示等值\n");

printf("\n括号均用\"()\"表示:\n");

printf("\n命题变元用大写英文字母表示,以回车键结束输入:\n\n");

while(flag==0)

{

gets(temp);

if(temp[0]=='\0')

{

valid=0;

break;

}

for(j=0,i=0;*(temp+i);i++)

if(*(temp+i)!=' ')

{

*(formula+j)=*(temp+i);

j++;

}

len=strlen(formula);

if(!(formula[len-1]>=65&&formula[len-1]<=90||formula[len-1]==')')|| !((formula[0]>=65&&formula[0]<=90)||formula[0]=='('||formula[0]== '/'))

flag=0;

else

{

for(pp=formula;*pp!='\0';pp++)

{

if(!((*pp>=65&&*pp<=90)||*pp=='/'||*pp=='*'||*pp=='+'||*pp=='>'||*pp==':'||*pp== '('||*pp==')'))

{

flag=0;break;

}

else

{

tempsign[0]=*pp;

tempsign[1]=*(pp+1);

tempsign[2]='\0';

if(strcmp(tempsign,"(+")==0||strcmp(tempsign,"(*")==0||strcmp(tempsign,"/)")==0| |

strcmp(tempsign,"+)")==0||strcmp(tempsign,"*)")==0||strcmp(tempsign,")/")==0||

strcmp(tempsign,"*+")==0||strcmp(tempsign,"/*")==0||strcmp(tempsign,")(")==0||

strcmp(tempsign,"+*")==0||strcmp(tempsign,"/+")==0||strcmp(tempsign,"()")==0||

strcmp(tempsign,">+")==0||strcmp(tempsign,"+>")==0||strcmp(tempsign,"*>")==0|| strcmp(tempsign,">*")==0||strcmp(tempsign,"(>")==0||strcmp(tempsign,">)")==0|| strcmp(tempsign,"/>")==0||strcmp(tempsign,"+:")==0||strcmp(tempsign,":+")==0|| strcmp(tempsign,"*:")==0||strcmp(tempsign,":*")==0||strcmp(tempsign,":>")==0||

strcmp(tempsign,">:")==0||strcmp(tempsign,"/:")==0||strcmp(tempsign,"(:")==0|| strcmp(tempsign,":)")==0)

{

flag=0;break;

}

if((tempsign[0]>=65&&tempsign[0]<=90)&&(tempsign[1]>=65&&tempsign[1]<=90)) {

flag=0;break;

}

if(((tempsign[0]>=65&&tempsign[0]<=90)&&(tempsign[1]=='/'||tempsign[1]=='('))|| ((tempsign[1]>=65&&tempsign[1]<=90)&&tempsign[0]==')')) {

flag=0;break;

}

else

flag=1;

}

}

}

if(flag==0)

{

printf("表达式有误,请重新输入:\n");

for(i=0;*(temp+i)!='\0';i++)

*(temp+i)='\0';

for(i=0;*(formula+i)!='\0';i++)

*(formula+i)='\0';

}

}

pp=formula;

// if(flag!=0)printf("%s",pp);

return pp;

}

/*-----------------------------------------------------------------------*/ // 将中缀表达式转化为后缀表达式

/*-----------------------------------------------------------------------*/ char suf_formula[100]={0};

char *convert_suffix(char *formula)

{

// char plus,and,not,left,right;

char stack[30],digit_stack[30];

char *pt;

int i=0,j=0,top=1,digit_top=1;

pt=formula;

for(i=0;*pt;pt++)

{

if(*pt>=65&&*pt<=90)

suf_formula[i++]=*pt;

else

switch(*pt) //优先级高低顺序,栈内(、:、>、+、*、/依次升高,分别用1、2、3、4、5、6表示

{

case ':':// if(stack[0]=='\0')

// {

// stack[top++]='+';

离散数学作业

第一章命题逻辑的基本概念 一、判断下列语句是否是命题,若是命题是复合命题则请将其符号化 (1)中国有四大发明。 (2)2是有理数。 (3)“请进!” (4)刘红和魏新是同学。 (5)a+b (6)你去图书馆吗? (7)如果买不到飞机票,我哪儿也不去。 (8)侈而惰者贫,而力而俭者富。(韩非:《韩非子?显学》) (9)火星上有生命。 (10)这朵玫瑰花多美丽啊! 二、将下列命题符号化,其中p:2<1,q:3<2 (1)只要2<1,就有3<2。 (2)如果2<1,则3≥2。 (3)只有2<1,才有3≥2。 (4)除非2<1,才有3≥2。 (5)除非2<1,否则3≥2。 (6)2<1仅当3<2。 三、将下列命题符号化 (1)小丽只能从筐里拿一个苹果或一个梨。 (2)王栋生于1992年或1993年。 - 1 -

四、设p、q的真值为0;r、s的真值为1,求下列各命题公式的真值。(1)p∨(q∧r) (2)(p?r)∧(﹁q∨s) (3)(?p∧?q∧r)?(p∧q∧﹁r) (4)(?r∧s)→(p∧?q) 五.判断下面一段论述是否为真:“π是无理数。并且,如果3是无理数,则2也是无理数。另外6能被2整除,6才能被4整除。” 六、用真值表判断下列公式的类型: (1) p∧(p→q)∧(p→?q) (2) (p∧r) ?(?p∧?q) (2)((p→q) ∧(q→r)) →(p→r) - 2 -

第二章命题逻辑等值演算 一、用等值演算法判断下列公式的类型,对不是重言式的可满足式,再用真值表法求出成真赋值. (1) ?(p∧q→q) (2)(p→(p∨q))∨(p→r) (3)(p∨q)→(p∧r) 二、用等值演算法证明下面等值式 (1)(p→q)∧(p→r)?(p→(q∧r)) (2)(p∧?q)∨(?p∧q)?(p∨q) ∧?(p∧q) - 3 -

离散数学实验报告

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

离散数学(大作业)与答案

一、请给出一个集合A,并给出A上既具有对称性,又具有反对称性的关系。(10分)解:A={1,2} R={(1,1),(2,2)} 二、请给出一个集合A,并给出A上既不具有对称性,又不具有反对称性的关系。(10分)集合A={1,2,3} A上关系{<1,2>,<2,1>,<1,3>},既不具有对称性,又不具有反对称性 三、设A={1,2},请给出A上的所有关系。(10分) 答:A上的所有关系: 空关系,{<1,1>,<1,2>,<2,1>,<2,2>} {<1,1>} {<1,2>} {<2,1>} {<2,2>} {<1,1>,<1,2>} {<1,1>,<2,1>} {<1,1>,<2,2>} {<1,2>,<2,1>} {<1,2>,<2,2>} {<2,1>,<2,2>} {<1,1>,<1,2>,<2,1>} {<1,1>,<1,2>,<2,2>}

{<1,2>,<2,1>,<2,2>} {<1,1>,<2,1>,<2,2>} 四、设A={1,2,3},问A 上一共有多少个不同的关系。(10分) 设A={1,2,3},A 上一共有2^(3^2)=2^9=512个不同的关系。 五、证明: 命题公式G 是恒真的当且仅当在等价于它的合取范式中,每个子句均至少包含一个原子及其否定。(10分) 证明:设公式G 的合取范式为:G ’=G1∧G2∧…∧Gn 若公式G 恒真,则G ’恒真,即子句Gi ;i=1,2,…n 恒真 为其充要条件。 Gi 恒真则其必然有一个原子和它的否定同时出现在Gi 中,也就是说无论一个解释I 使这个原子为1或0 ,Gi 都取1值。 若不然,假设Gi 恒真,但每个原子和其否定都不同时出现在Gi 中。则可以给定一个解释I ,使带否定号的原子为1,不带否定号的原子为0,那么Gi 在解释I 下的取值为0。这与Gi 恒真矛盾。 因此,公式G 是恒真的当且仅当在等价于它的合取范式中,每个子句均至少包含一个原子及其否定。 六、若G=(P ,L)是有限图,设P(G),L(G)的元数分别为m ,n 。证明:n ≤2m C ,其中2m C 表 示m 中取2的组合数。(10分) 证明:如果G=(P,L)为完全图,即对于任意的两点u 、v (u ≠v ),都有一条边uv ,则此时对于元数为m 的P(G),L(G)的元数取值最大为C m 2。因此,若G=(P,L)为一有限图,设P(G)的元数为m ,则有L(G)

离散数学实验报告

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

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

离散数学作业(2)

离散数学作业布置 第1次作业(P15) 1.16 设p、q的真值为0;r、s的真值为1,求下列各命题公式的真值。 解:(1)p∨(q∧r)=0∨(0∧1)=0 (2)(p?r)∧(﹁q∨s)=(0?1)∧(1∨1)=0∧1 =0 (3)(﹁p∧﹁q∧r)?(p∧q∧﹁r)=(1∧1∧1)? (0∧0∧0)=0 (4)(r∧s)→(p∧q)=(0∧1)→(1∧0)=0→0=1 1.17 判断下面一段论述是否为真:“π是无理数。并且,如果3是无理数,则2 也是无理数。另外只有6能被2整除,6才能被4整除。” 解:p: π是无理数 1 q: 3是无理数0 r: 2是无理数 1 s:6能被2整除 1 t: 6能被4整除0 命题符号化为:p∧(q→r)∧(t→s)的真值为1,所以这一段的论述为真。 1.19 用真值表判断下列公式的类型: (4)(p→q) →(﹁q→﹁p) (5)(p∧r) ? (﹁p∧﹁q) (6)((p→q) ∧(q→r)) →(p→r) 解:(4) p q p→q q p q→p (p→q)→( q→p) 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 所以公式类型为永真式,最后一列全为1 (5)公式类型为可满足式(方法如上例),最后一列至少有一个1 (6)公式类型为永真式(方法如上例,最后一列全为1)。 第2次作业(P38) 2.3 用等值演算法判断下列公式的类型,对不是重言式的可满足式,再用真值表法求出成真赋值. (1) ﹁(p∧q→q) (2)(p→(p∨q))∨(p→r) (3)(p∨q)→(p∧r) 解:(1) ﹁(p∧q→q) ?﹁(﹁(p∧q) ∨q) ?(p∧q) ∧﹁q?p∧(q ∧﹁q) ? p∧0 ?0 所以公式类型为矛盾式 (2)(p→(p∨q))∨(p→r) ? (﹁p∨(p∨q))∨(﹁p∨r) ?﹁p∨p∨q∨r?1 所以公式类型为永真式 (3) (p∨q) → (p∧r) ?¬(p∨q) ∨ (p∧r) ? (¬p∧¬q) ∨(p∧r) 易见, 是可满足式, 但不是重言式. 成真赋值为: 000,001, 101, 111

离散数学作业

命题逻辑的基本概念 一、单项选择题 1.下列语句中不是命题的有( ). A 9+5≤12 B. 1+3=5 C. 我用的电脑CPU 主频是1G 吗D.我要努力学习。 2. 下列语句是真命题为( ). A. 1+2=5当且仅当2是偶数 B. 如果1+2=3,则2是奇数 C. 如果1+2=5,则2是奇数 D. 你上网了吗 3. 设命题公式)(r q p ∧→?,则使公式取真值为1的p ,q ,r 赋值分别是 ( ) 0,0,1)D (0 ,1,0)C (1 ,0,0)B (0 ,0,0)A ( 4. 命题公式q q p →∨ )(为 ( ) (A) 矛盾式 (B) 仅可满足式 (C) 重言式 (D) 合取范式 5. 设p:我将去市里,q :我有时间. 命题“我将去市里,仅当我有时间时”符号化为为( ) q p q p q p p q ?∨??→→)D ()C ()B ()A (6.设P :我听课,Q :我看小说. “我不能一边听课,一边看小说”的符号为( ) A. Q P ?→ ; B. Q P →?; C. P Q ?∧? ; D. )(Q P ∧? 二、判断下列语句是否是命题,若是命题是复合命题则请将其符号化 (1)中国有四大发明。 (2)2是有理数。 (3)“请进!” (4)刘红和魏新是同学。 (5)a+b (6)如果买不到飞机票,我哪儿也不去。 (8)侈而惰者贫,而力而俭者富。(韩非:《韩非子显学》) (9)火星上有生命。 (10)这朵玫瑰花多美丽啊! 二、将下列命题符号化,其中p:2<1,q:3<2 (1)只要2<1,就有3<2。 (2)如果2<1,则32。 (3)只有2<1,才有32。 (4)除非2<1,才有32。 (5)除非2<1,否则32。

离散数学(屈婉玲版)第一章部分习题分解

第一章习题 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维数组,以数 组的运算来实现二元关系的判断。 图示:

离散数学作业

离散数学作业 软件0943 张凌晨38 李成16 1.设S={1,2,3,4},定义S上的二元运算*如下: x*y=(xy) mod 5任意x,y属于S 求运算*的运算表. 解(xy) mod 5表示xy除以5的余数,所以运算表如下: 2.设*为Z+上的二元运算,任意x,y属于Z+, x*y=min(x,y),即x和y之中的较小数. (1)求4*6,7*3. (2)*在Z+上是否满足交换律、结合律和幂等律? (3)求*运算的单位元、零元及Z+中所有可逆元素的逆元.

解 (1)由题得:4*6=min(4,6)=4; 7*3=min(7,3)=3. (2)由题分析知: *运算是取x和y之中的较小数,即x和y调换位置不影响结果,所以*在Z+上满足交换律. *运算满足结合律,因为任意x,y属于Z+,有 (x*y)*z=min(x,y)*z=min(min(x,y),z) x*(y*z)=x*min(y,z)=min(x,min(y,z)) 无论x,y,z三数中哪个较小,*运算的最终结果都是较小的那个,所以满足结合律. *运算满足幂等律,因为在Z+上任意 x*x=min(x,x)=x (3)在Z+中最小的数字是1 任意x属于Z+,有 x*1=1=1*x 所以1是*运算的零元,*运算没有单位元,也没有可逆元素的逆元。

3.令S={a,b},S 上有四个二元运算:*,&,@和#,分别由下表确定. (1)这四个运算中哪些运算满足交换律、结合律、幂等律? (2)求每个运算的单位元、零元及所有可逆元素的逆元. 解 (1)*,&和@满足交换律;*,@和#满足结合律;#满足幂等律。 (2)*运算没有单位元和可逆元素,a 是零元;&运算的单位元为a ,没有零元,每个元素都是自己的逆元;@运算和#运算没有单位元, 零元和可逆元素.

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

欢迎共阅 一、填空题 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

离散数学实验报告

大连民族学院 计算机科学与工程学院实验报告 实验题目:判断关系的性质 课程名称:离散数学 实验类型:□演示性□验证性□操作性□设计性□综合性 专业:班级:学生姓名:学号: 实验日期:年月日实验地点: 实验学时:实验成绩: 指导教师签字:年月日 实验报告正文部分(具体要求详见实验报告格式要求) 实验报告格式 [实验题目] 判断关系的性质 [实验目的] 使学生掌握利用计算机语言实现判断关系性质的基本方法。[实验环境] Microsoft Visual C++6.0 [实验原理] 实验内容与要求:对给定表示有穷集上关系的矩阵,确定这个关系是否是自反的或反自反的;对称的或反对称的;是否传递的。 通过二元关系与关系矩阵的联系,可以引入N维数组,以数组的运算来实现二元关系的判断。

图示: 程序源代码: #include #define N 4 main() { int i,j,k; int f,e,z; int M[N][N]; printf("判断R是否为自反关系、对称关系、是否可传递?\n"); printf("请输入一个4*4的矩阵。\n"); for(i=0;i

scanf("%d",&M[i][j]); for(i=0;i

华南理工离散数学作业题2017版

华南理工大学网络教育学院 2014–2015学年度第一学期 《离散数学》作业 (解答必须手写体上传,否则酌情扣分) 1.设命题公式为?Q∧(P→Q)→?P。 (1)求此命题公式的真值表; (2)求此命题公式的析取范式; (3)判断该命题公式的类型。 解:(1)真值表如下: P Q ?Q P →Q ?Q∧(P→Q)?P ?Q∧(P→Q)→?P 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 (2)?Q∧(P→Q)→?P??(?Q∧(?P∨ Q)) ∨? P ?( Q∨? (?P∨ Q)) ∨? P ?? ( ?P∨ Q) ∨ (Q∨?P) ?1(析取范式) ?(?P∧? Q) ∨ (?P∧ Q) ∨ (P∧? Q) ∨(P∧ Q)(主析取范式) (3)该公式为重言式 2.用直接证法证明 前提:P∨Q,P→R,Q→S 结论:S∨R 解:(1)?S P (2)Q →S P (3) ? Q (1)(2) (4)P∨ Q P

(5)P (3)(4) (6) P → R P (7)R (5)(6) (8)?S→ R (1)(7) 即SVR得证 3.在一阶逻辑中构造下面推理的证明 每个喜欢步行的人都不喜欢坐汽车。每个人或者喜欢坐汽车或者喜欢骑自行车。有的人不喜欢骑自行车。因而有的人不喜欢步行。 令F(x):x喜欢步行。G(x):x喜欢坐汽车。H(x):x喜欢骑自行车。 解:前题:?x (F (x) →?G(x)), ?x (G (x) ∨H (x)) ? x ?H (x) 结论:? x ?F (x) 证:(1)? x ?F (x) p (2) ?H (x) ES(1) (3) ?x (G (x) ∨H (x))P (4)G(c) vH(c)US(3) (5)G(c) T(2,4)I (6)?x (F (x) →?G(x)), p (7)F (c) →?G(c) US(6) (8) ?F (c) T(5,7)I (9)( ? x) ?F (x) EG(8) 4.用直接证法证明: 前提:(?x)(C(x)→W(x)∧R(x)),(?x)(C(x)∧Q(x)) 结论:(?x)(Q(x)∧R(x))。 证: (1)(?x)(C(x)∧Q(x))P (2) C (c) ∧Q(c)ES(1) (3)(?x)(C(x)→W(x)∧R(x))P

离散数学考试题详细答案

离散数学考试题(后附详细答案) 一、命题符号化(共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

离散数学作业答案一

离散数学作业7 离散数学数理逻辑部分形成性考核书 面作业 本课程形成性考核书面作业共3次,内容主要分别就是集合论部分、图论部分、数理逻辑部分的综合练习,基本上就是按照考试的题型(除单项选择题外)安排练习题目,目的就是通过综合性书面作业,使同学自己检验学习成果,找出掌握的薄弱知识点,重点复习,争取尽快掌握。本次形考书面作业就是第三次作业,大家要认真及时地完成数理逻辑部分的综合练习作业。 要求:将此作业用A4纸打印出来,手工书写答题,字迹工整,解答题要有解答过程,要求本学期第17周末前完成并上交任课教师(不收电子稿)。并在07任务界面下方点击“保存”与“交卷”按钮,以便教师评分。 一、填空题 1.命题公式()P Q P →∨的真值就是 T 或1 . 2.设P :她生病了,Q :她出差了.R :我同意她不参加学习、 则命题“如果她生病或出差了,我就同意她不参加学习”符号化的结果为 (P ∨Q)→R . 3.含有三个命题变项P ,Q ,R 的命题公式P ∧Q 的主析取范式就是 )()(R Q P R Q P ?∧∧∨∧∧ . 4.设P (x ):x 就是人,Q (x ):x 去上课,则命题“有人去上课.” 可符号化为 ))()((x Q x P x ∧? . 5.设个体域D ={a , b },那么谓词公式)()(y yB x xA ?∨?消去量词后的等值式为 ))()(())()((b B a B b A a A ∧∨∨ . 6.设个体域D ={1, 2, 3},A (x )为“x 大于3”,则谓词公式(?x )A (x ) 的真值为 F 或0 . 7.谓词命题公式(?x )((A (x )∧B (x )) ∨C (y ))中的自由变元为 y . 8.谓词命题公式(?x )(P (x ) →Q (x ) ∨R (x ,y ))中的约束变元为 x . 三、公式翻译题 1.请将语句“今天就是天晴”翻译成命题公式. P 。,P 则今天是天晴设答:: 2.请将语句“小王去旅游,小李也去旅游.”翻译成命题公式. Q 。P ;,Q P ∧则小李去旅游小王去旅游设答::: 3.请将语句“如果明天天下雪,那么我就去滑雪”翻译成命题公式. Q 。P ;,Q P →则我去滑雪明天下雪设答;:: 4.请将语句“她去旅游,仅当她有时间.”翻译成命题公式.

离散数学实验报告格式

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

离散数学作业答案完整版

离散数学作业答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

离散数学集合论部分形成性考核书面作 业 本课程形成性考核书面作业共3次,内容主要分别是集合论部分、图论部分、数 理逻辑部分的综合练习,基本上是按照考试的题型(除单项选择题外)安排练习题 目,目的是通过综合性书面作业,使同学自己检验学习成果,找出掌握的薄弱知识 点,重点复习,争取尽快掌握。本次形考书面作业是第一次作业,大家要认真及时地 完成集合论部分的综合练习作业。 要求:将此作业用A4纸打印出来,手工书写答题,字迹工整,解答题要有解答 过程,要求本学期第11周末前完成并上交任课教师(不收电子稿)。并在03任务界 面下方点击“保存”和“交卷”按钮,完成并上交任课教师。 一、填空题 1.设集合{1,2,3},{1,2} ==,则P(A)- A B P(B )={{3},{1,3},{2,3},{1,2,3}},A? B={<1,1>,<1,2>,<2,1>,<2,2>,<3,1>,<3,2>} . 2.设集合A有10个元素,那么A的幂集合P(A)的元素个数为 1024 . 3.设集合A={0, 1, 2, 3},B={2, 3, 4, 5},R是A到B的二元关系, 则R的有序对集合为{<2,2>,<2,3>,<3,2>,<3,3>} . 4.设集合A={1, 2, 3, 4 },B={6, 8, 12},A到B的二元关系 R=} ∈ y x∈ y < > = {B , , x , 2 y A x 那么R-1={<6,3>,<8,4>} 5.设集合A={a, b, c, d},A上的二元关系R={, , , },则R具有的性质是没有任何性质. 6.设集合A={a, b, c, d},A上的二元关系R={, , , },若在R中再增加两个元素{,} ,则新得到的关系就具有对 称性. 7.如果R1和R2是A上的自反关系,则R1∪R2,R1∩R2,R1-R2中自反关系有 2 个. 8.设A={1, 2}上的二元关系为R={|x?A,y?A, x+y =10},则R的自反闭 包为 {<1,1>,<2,2>} . 9.设R是集合A上的等价关系,且1 , 2 , 3是A中的元素,则R中至少包含 <1,1>,<2,2>,<3,3> 等元素. 10.设集合A={1, 2},B={a, b},那么集合A到B的双射函数是 {<1,a>,<2,b>}或{<1,b>,<2,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; }

相关主题
文本预览