离散作业_河北工业大学样本试验一真值计算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…列出算法计算自反、对称、传输闭包并输出。本试验源程序努力争取简练易懂,所以在设计时应用简单语句并省去了很多繁杂选择,且每步全部有注释,使程序更清楚。但本试验在操作易于了解方面也有很大表现。:/*熟悉Warshall算法,掌握求关系自反闭包、对称闭包和传输闭包方法令RAXA,则
离散作业 河北工业大学样本 来自淘豆网m.daumloan.com转载请标明出处.