离散作业_河北工业大学解析实验一真值计算1、实验目的熟悉五个常用联结词合取、析取、条件和双条件的概念,掌握真值表技术。2、实验内容与要求定义1 设P表示一个命题,由命题联结词┐和命题P连接成┐P,称┐P为P的否定式复合命题,┐P读“非P”。称┐为否定联结词。┐P是真,当且仅当P为假;┐P是假,当且仅当P为真。定义2 设P和Q为两个命题,由命题联结词∧将P和Q连接成P∧Q,称P∧Q为命题P和Q的合取式复合命题,P∧Q读做“P与Q”,或“P且Q”。称∧为合取联结词。当且仅当P和Q的真值同为真,命题P∧Q的真值才为真;否则,P∧Q的真值为假。定义3 设P和Q为两个命题,由命题联结词∨把P和Q连接成P∨Q,称P∨Q为命题P和Q的析取式复合命题,P∨Q读做“P或Q”。称∨为析取联结词。当且仅当P和Q的真值同为假,P∨Q的真值为假;否则,P∨Q的真值为真。定义4 设P和Q为两个命题,由命题联结词→把P和Q连接成P→Q,称P→Q为命题P和Q的条件式复合命题,简称条件命题。P→Q读做“P条件Q”或者“若P则Q”。称→为条件联结词。当P的真值为真而Q的真值为假时,命题P→Q的真值为假;否则,P→Q的真值为真。定义5 令P、Q是两个命题,由命题联结词«把P和Q连接成P«Q,称P«Q为命题P和Q的双条件式复合命题,简称双条件命题,P«Q读做“P当且仅当Q”,或“P等价Q”。称«为双条件联结词。当P和Q的真值相同时,P«Q的真值为真;否则,P«Q的真值为假。本实验要求从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真值。用C语言或MATLAB实现。:在输入P、Q真值后,会依次输出合取、析取、条件、双条件的真值。本实验源程序力求简洁易懂,所以在设计时应用简单的语句并省去了许多繁杂的选择,如1与T、0与F的置换等。但本实验在操作易于理解方面也有很大的体现。:(1)方法一:#include<>voidmain(void){ printf("输入P、Q的真值(1为T,0为F):\n"); intP,Q; scanf("%d",&P);//输入P、Q的值 scanf("%d",&Q); //求真值 printf("合取:%d\n",P&&Q); printf("析取:%d\n",P||Q); printf("条件:%d\n",!P||Q); printf("双条件:%d\n",P&&Q+!P&&!Q);}(2)方法二:#include<iostream>usingnamespacestd;intmain(){ charP,Q; inti; cout<<"请输入两个命题的真值(T/F):"<<endl; for(i=1;i<=4;i++){ cin>>P; cin>>Q; if(P=='T'&&Q=='T') cout<<"合取为T,析取为T,条件为T,双条件为T"<<endl; elseif(P=='T'&&Q=='F') cout<<"合取为F,析取为T,条件为F,双条件为F"<<endl; elseif(P=='F'&&Q=='T') cout<<"合取为F,析取为T,条件为T,双条件为F"<<endl; elseif(P=='F'&&Q=='F') cout<<"合取为F,析取为F,条件为T,双条件为T"<<endl; }}:(1)方法一:(2)方法二:实验二关系闭包计算1、实验目的熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。2、实验内容与要求定义6设R是A上的二元关系,R的自反(对称、传递)闭包是关系R1,则①R1是自反的(对称的、传递的)②RÍR1对任何自反的(对称的、传递的)关系R2,若RÍR2,则R1ÍR2。R的自反、对称和传递闭包分别记为r(R)、s(R)和t(R)。定理1令RÍA´A,则①r(R)=R∪IA②s(R)=R∪R-1③t(R)=R∪R2∪R3…Warshall算法:设R是n个元素集合上的二元关系,M是R的关系矩阵;置新矩阵A:=M置i:=1;forj=1tondo ifA[j,i]=1thendo fork=1tondoA[j,k]:=A[j,k]+A[i,k]i=i+1;ifi<=nthento(3) elsestop本实验要求从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包,计算传递闭包时使用Warshall算法。用C语言或MATLAB实现。:输入一个3*3维矩阵由r(R)=R∪IA;s(R)=R∪R-1;t(R)=R∪R2∪R3…列出的算法计算自反、对称、传递闭包并输出。本实验源程序力求简洁易懂,所以在设计时应用简单的语句并省去了许多繁杂的选择,且每步均有注释,使程序更清晰。但本实验在操作易于理解方面也有很大的体现。
离散作业 河北工业大学解析 来自淘豆网m.daumloan.com转载请标明出处.