离散实验报告实验一真值计算 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 实现。 3 、源程序#include<> void main() { printf(" 请输入 P、Q的真值\n"); int a,b; scanf("%d%d",&a,&b); int c; if(a==1&&b==1) c=1; else c=0; printf(" 合取结果为%d\n",c); intd; if(a==0&&b==0) d =0; else d =1; printf(" 析取结果为%d\n",d); inte; if(a==1&&b==0) e =0; else e =1; printf(" 单条件为%d\n",e); intf; if(a==b) f =1; else f =0; printf(" 双条件为%d\n",f); } 4 、实验结果请输入 P、Q 的真值 10 合取结果为 0 析取结果为 1 单条件为 0 双条件为 0 Press any key to continue 实验二关系闭包计算 1 、实验目的熟悉 Warshall 算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。 2 、实验内容与要求定义 6设R是A 上的二元关系, R 的自反(对称、传递)闭包是关系 R1 ,则① R1 是自反的(对称的、传递的) ②R? R1 3 对任何自反的(对称的、传递的)关系 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∪R 2∪R 3… Warshall 算法: 设R是n 个元素集合上的二元关系, M是R 的关系矩阵; (1) 置新矩阵 A:=M (2) 置i :=1 ; (3) for j=1 ton do if A[j,i]=1 then do for k=1 ton do A[j,k]:=A[j,k]+A[ i ,k] (4) i=i +1 ; (5) ifi <=n then to(3) else stop 本实验要求从键盘输入一个关系的关系矩阵, 计算其自反闭包、对称闭包和传递闭包, 计算传递闭包时使用 Warshall 算法。用 C 语言或 MATLAB 实现。 3 、源程序#include<> int xiqu(int,int); void main() { int a[100][100],b[100][100],c[100][100],d[100][100],e[100][100],i,j,k,n,x,y,z; printf(" 请输入关系矩阵的阶数\n"); scanf("%d",&n); printf(" 请输入此关系矩阵\n"); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++) { e
(参考)离散数学实验报告 来自淘豆网m.daumloan.com转载请标明出处.