(11)中南大学离散数学实验报告 联系客服

发布时间 : 星期四 文章(11)中南大学离散数学实验报告更新完毕开始阅读970c221c964bcf84b9d57b43

“离散数学”实验报告

(实验1)

专业 班级 学号 姓名

日期2010.11.1

目录

一.实验目的 ....................................................... 2 二.实验内容 ....................................................... 2

1. 逻辑联接词的运算 .............................................................................................. 2 2. 求任意一个命题公式的真值表 .......................................................................... 3

三.实验环境 ....................................................... 3 四. 实验原理和实现过程(算法描述) ............................ 3

1.实验原理 ................................................................................................................ 3 2.实验过程 ................................................................................................................ 4

五.实验数据及结果分析 ........................................... 8

1.题A .......................................................................................................................... 8 2.B,C题 .................................................................................................................... 10

六. 源程序清单 .............................................. - 13 -

1.A题部分源代码 ............................................................................................... - 13 - 2.B,C题部分源代码 ........................................................................................... - 14 -

七. 其他收获和体会 ......................................... - 22 -

- 1 -

一.实验目的;

本实验课程是信息专业学生的一门专业基础课程,通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。

熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。

二.实验内容;

1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。(A)

2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C)) 详细说明:

1. 逻辑联接词的运算

本实验要求大家利用C/C++语言,实现二元合取、析取、条件和双条件表达式的计算。充分利用联接词和逻辑运算符之间的相似性实现程序功能。

2. 求任意一个命题公式的真值表

本实验要求大家利用C/C++语言,实现任意输入公式的真值表计算。一般我们将公式中的命题变元放在真值表的左边,将公式的结果放在真值表的右边。命题变元可用数值变量表示,合适公式的表示及求真值表转化为逻辑运算结果;可用一维数表示合式公式中所出现的n个命题变元,同时它也是一个二进制加法器的模拟器,每当在这个模拟器中产生一个二进制数时,就相当于给各个命题变元产生了一组真值指派。算法逻辑如下: (1)将二进制加法模拟器赋初值0

(2)计算模拟器中所对应的一组真值指派下合式公式的真值。

(3)输出真值表中对应于模拟器所给出的一组真值指派及这组真值指派所对应的一行真值。

(4)产生下一个二进制数值,若该数值等于2n-1,则结束,否则转(2)。

- 2 -

三.实验环境;

使用visual C++6.0为编程软件,采用C语言为编程语言实现。

四. 实验原理和实现过程(算法描述);

1.实验原理

(1)合取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∧Q, 读作P、Q的合取, 也可读作P与Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = T时方可P∧Q =T, 而P、Q只要有一为F则P∧Q = F。这样看来,P∧Q可用来表示日常用语P与Q, 或P并且Q。

(2)析取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∨Q, 读作P、Q的析取, 也可读作P或Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = F, Q = F时方可P∨Q =F, 而P、Q只要有一为T则P∨Q = T。这样看来,P∨Q可用来表示日常用语P或者Q。 (3)蕴含:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P→Q, 读作P蕴含Q, 也可读作如果P,那么Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P = T, Q = F时方可P→Q =F, 其余均为T。

(4)等值:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P←→Q, 读作P等值于Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为当两个命题变项P = T, Q =T时方可P←→Q =T, 其余均为F。 (5)真值表:表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真,0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法。 真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。 (6)主范式:

主析取范式:在含有n个命题变元的简单合取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单合取式为小项。由若干个不同的小项组成的析取式称为主析取范式;与A等价的主析取范式称为A的主析取范式。任意含n个命题变元的非永假命题公式A都存在与其等价的主析取范式,并且是惟一的。

主合取范式:在含有n个命题变元的简单析取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单析取式为大项。由若

- 3 -