离散数学上机实验指导

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

离散数学上机实验指导

徐凤生

如果你需要索取源程序,请发邮件至xfs@。

实验1

1实验内容

(1)求任意一个命题公式的真值表。

(2)利用真值表求任意一个命题公式的主范式。

(3)利用真值表进行逻辑推理。

注:(2)和(3)可在(1)的基础上完成。

2实验目的

真值表是命题逻辑中的一个十分重要的概念,利用它几乎可以解决命题逻辑中的所有问题。例如,利用命题公式的真值表,可以判断命题公式的类型、求命题公式的主范式、判断两命题公式是否等价,还可以进行推理等。

本实验通过编写一个程序,让计算机给出命题公式的真值表,并在此基础上进行命题公式类型的判定、求命题公式的主范式等。目的是让学生更加深刻地理解真值表的概念,并掌握真值表的求解方法及其在解决命题逻辑中其他问题中的应用。

3算法的主要思想

利用计算机求命题公式真值表的关键是:①给出命题变元的每一组赋值;②计算命题公式在每一组赋值下的真值。

真值表中命题变元的取值具有如下规律:每列中0和1是交替出现的,且0和1连续出现的个数相同。n个命题变元的每组赋值的生成算法可基于这种思想。

含有n个命题变元的命题公式的真值的计算采用的方法为“算符优先法”。

为了程序实现的方便,约定命题变元只用一个字母表示,非、合取、析取、条件和双条件联结词分别用!、&、|、-、+来表示。

算符之间的优先关系如表1-32所示:

为实现算符优先算法,另一个称作OPND,用以寄存操作数或运算结果。算法的基本思想是:

(1)首先设置操作数栈为空栈,符号“@”为运算符的栈底元素;

(2)调用函数Divi(exp,myopnd)得到命题公式包含的命题变元序列myopnd(按字典序排列,同

一个命题变元只出现一次);

(3)依次读入命题公式中的每个字符,若是命题变元则其对应的赋值进OPND栈,若是运算符,则和OPTR栈的栈顶运算符比较后作相应操作,直至整个命题公式求值完毕。

实验2

1实验内容

(1)求任意两个集合的交集、并集、差集。

(2)求任意一个集合的幂集。

(3)求任意一个集合的所有m元子集。

(4)求任意个元素的全排列。

2实验目的

集合论是一切数学的基础,也是计算机科学不可或缺的,在数据结构、数据库理论、开关理论、自动机理论和可计算理论等领域都有广泛的应用。集合的运算规则是集合论中的重要内容。通过该组实验,目的是让学生更加深刻地理解集合的概念和性质,并掌握集合的运算规则等。

3算法的主要思想

集合的表示采用列举法,如A={a,b,c,d}。

(1)求任意两个集合的交集、并集、差集。

A∩B={x|x∈A∧x∈B}

A∪B={x|x∈A∨x∈B}

A-B={x|x∈A∧x∉B}

(2)求任意一个集合的幂集。

P(A)={A i|i∈J},其中J={i|i是二进制数且

48

47

6

Λ

|

|

000

A

≤i≤

8

7

6

Λ

|

|

1

111

A

}。

(3)求任意一个集合的所有m元子集。

按照(2)求出子集并判断是否符合要求。

(4)求任意个元素的全排列。

设S={1,2,3,…,n},(a1,a2,…,a n)和(b1,b2,…,b n)是S的两个全排列,若存在i∈{1,2,…,n},使得对一切j=1,2,…,i有a j=b j且a i+1

求一个排列(a1,a2,…,a n)的下一个排列的算法如下:

(1)求满足关系式a j-1

(2)求满足关系式a i-1

(3)a i-1与a j互换得序列(b1,b2,…,b n)

(4)将(b1,b2,…,b n)中部分b i,b i+1,…,b n的顺序逆转,得到(b1,b2,…,b i-1,b n,…,b i)便是所求得下一个排列。

实验3

1实验内容

判断任意一个关系是否为自反关系、对称关系、传递关系和等价关系?若是等价关系,求出其所有等价类。

2实验目的

关系是集合论中的一个十分重要的概念,关系性质的判定是集合论中的重要内容。通过该组实验,目的是让学生更加深刻地理解关系的概念和性质,并掌握关系性质的判定等。

3算法的主要思想

设R⊆A×A,(1)若∀x(x∈A→xRx),称R是自反的;(2)若∀x∀y(x、y∈A∧xRy→yRx),称R是对称的;(3)若∀x∀y∀z(x、y、z∈A∧xRy∧yRz→xRz),称R是传递的;(4)若R是自反的、对称的和传递的,则称R是等价关系。

在程序实现中,集合和关系用都用集合方式输入。

实验4

1实验内容

判断任意一个关系是否为函数,若是函数,判定其是否为单射、满射或双射。

2实验目的

函数是集合论中的一个十分重要的概念通过该组实验,目的是让学生更加深刻地理解函数的概念和性质,并掌握函数性质的判定等。

3算法的主要思想

设A和B为集合,f⊆A×B,若对任意的x∈A,都存在惟一的y∈B使得xfy成立,则称f为从A到B 的函数。

设f是A到B的函数,若R f=B(或f(A)=B),则称f是A到B的满射;若对任意的x1、x2∈A,x1≠x2,都有f(x1)≠f(x2),则称f是A到B的单射;若f既是满射又是单射,则称f是A到B的双射。

在程序中集合用列举法表示,关系用集合表示。例如:A={1,2,3},B={a,b,c},A到B上的关系f={<1,a>,<2,b>,<3,c>}。