离散数学学习笔记1

来源:互联网 发布:脸基尼 知乎 编辑:程序博客网 时间:2024/04/28 00:44

第一章 基础:逻辑、集合和函数

本章复习离散数学的基础。有三个主要内容:逻辑、集合和函数。逻辑规则给出数学语句的准确含义。例如,逻辑规则告诉我们下列语句的含义:“存在一个大于100且是2的幂的整数”,以及“对于每个整数n,小于等于n的正整数和是n(n+1)/2”。逻辑是所有数学推理的基础,对计算机的设计、人工智能、计算机程序设计、程序设计语言以及计算机科学的其他贡献,逻辑都有实际的应用。

离散数学的不少内容是研究用于表示离散对象的离散结构的。所有的离散结构都是从集合构造而来,而集合则是指一组对象。集合构造的离散机构例子包括:计数时广为应用组合,也就是无序的对象集;表示对象之间相互关连的关系,也就是有序偶的集合;图形,也就是顶点的边集合;以及用于模拟计算机的有限状态机。

1.1 逻辑

1.1.1 引言

逻辑规则给出数学语句的准确含义,这些规则用来区分有效和无效的数学论证。由于本书的一个主要目的是教会读者如何理解和如何构造正确的数学论证,所以我们从介绍逻辑开始离散数学的学习。

逻辑不仅对理解数学推理非常重要,而且在计算机科学中用很多应用。这些逻辑规则用于计算机电路设计,计算机程序构造、程序正确性证明以及许多其它方面。在随后的章节中将一一讨论。

1.1.2 命题

我们从介绍逻辑的基本成分——命题开始我们的讨论。命题是指一个或真或假的语句,但不能又真又假。

下列语句均为命题。

1. 华盛顿是美国的首都。

2. 多伦多第加拿大的首都。

3. 1+1=2

4. 2+2=3

命题13是真,24是假。 其中加拿大首都是渥太华。

下一例子给出了不是命题的若干语句。

考虑下述语句:

1. 几点了?

2. 仔细读这个。

3. x+1=2

4. x+y=z

语句12不是命题,因为他们不是陈述句,语句34不是命题,因为他们既不真也不假,这是由于语句中的变量没有被赋值。在1.3中我们将讨论这一类语句形成命题的多种方法。

命题常用字母来表示,就像用字母表示变量那样。习惯上用来表示命题的字母是pqrs......等。如果一个命题是真命题,它的真值为真,用T来表示;如果它是假命题,其真值为假,用F来表示。许多数学陈述都是组合一个或多个命题而来,称为复合命题的新命题由已有的命题逻辑运算符组合而来。

定义1  p为一命题,则语句“不是p所说的情形”是另一个命题,称为p的否定。p的否定用┐P表示。命题┐p读作“非p”。

例3 找出命题“今天是星期五。”的否定,并用中文来表示。

解:否定为”今天不是星期五。”

命题的否定也可以看做是非运算符作用在命题上的结果。非运算符是从一个已有的命题构造出来的一个新命题。现在将将引入从两个或多个已有命题构造命题的逻辑运算符,这些逻辑运算法也称为联接词。

定义2  令p和q为命题。用pΛq表示命题“p而且q”是这样一个命题:当p和q均为真时它为真,否则为假。命题pΛq称为p和q的合取。

例4 找出命题pΛq,其中p命题为“今天是星期五”,q命题是“今天下雨”。

解 这两个命题的合取pΛq是命题“今天星期五且下雨”。这一命题在今天是下雨且是星期五为真,不是星期五的日子为假,不下雨也为假。

定义3  令p和q为命题,用pⅤq表示的命题“p或q”是这样一个命题:它的真值在p和q均为假的时候为假,否则为真。命题pⅤq称为p和q的析取。

联接词“或”在析取中的使用对应词与词“或”(or)包含两种情况之一,即是“同或”。析取所包含两命题之一成真或两者之一成真是,析取真值为真。

例5  若p和q就是例4中的两个命题,它们的析取是什么?

解 p和q的析取pⅤq是命题“今天是星期五,或今天下雨。”这一命题在星期五或下雨天(包括下雨的星期五)的任何一天都成真。只有在即不是星期五,又不下雨的日子此命题为假。

前面说过,在析取中使用联接词“或”对应与“或”包含的两种情形之一,即“同或”。所以在析取中的两个命题之一成真或两者都成真时,析取成真。有时我们也按“异或”的含义使用“或”。用异或来联接命题p和q时,就得到命题“p或q”。这一命题当成真且q为假时为真,或反过来当p为假且q为真时为真。p和q两者均为真或假时,这一命题为假。

定义4  令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的真值是什么)时,其值为真。

有助于记住“当蕴含命题的前提为假时其值为真”这一事实的方法是把蕴含想象为合同或义务。如果这一陈述中的规定条件不成立,也就没有义务。

例如,“如果你挣的钱超过25000,那么你必须交税”这一语句与挣钱少于25000的人无关。如果你挣的钱超过了25000而没有交税,你没尽义务。同样,在垒球手的合同中写下“如果垒球击出60个以上本垒打,奖金1000万美元”,则只有球手击出60多个本垒打而没有得到上述奖金时,才是违反合同。当球手的本垒打小于60次时,上述合同没有任何作用。

我们定义的蕴含比语言中的蕴含含义更为广泛一些。例如,在“如果今天天晴,那么我们去海滩”中有假设和结论之间的联系,这是一般语言的蕴含。而且除非今日的确天晴我们不去海滩,为假。否则上面蕴含总是成立的。

许多程序语言中使用if-then(如果-那么)结构与逻辑中使用的不同。大部分程序语言中都有if p then S这样的语句,其中p是命题而S一个程序段(待执行的一条或多条语句)。当程序的运行遇到这样一个语句时,如果p为真,就执行S;当若p为假,则S不执行。

例6 若执行语句

If 2+2=4 then x=x+1 之前,x=0,执行后x的值是什么(符号=代表赋值,语句x=x+1表示将x+1的值赋给x.)

解 应为2+2=4为真,赋值语句x=x+1被执行。因此在执行此语句之后x的值是0+1=1。

我们可以用非运算符和已定义的各联接词构造复合命题。小括号用于规定复合命题中的多个逻辑运算符的操作顺序,最内层的小括号里面的逻辑运算符首先操作。由p→q可以构成几个相关的蕴含。命题q→p称为p→q的逆蕴含,而p→q的倒置命题是┐p→┐q。

例 7 找出蕴含命题

“如果今天是星期四,那么我今天有考试。”的逆命题和倒置命题。

解 逆命题是“如果我今天考试,那么今天是星期四”。

倒置命题是“如果今天我不考试,那么今天不是星期四”。

定义6 令p和q为命题。双蕴含p←→q是这样一个命题:其真值是真有在p和q同样的真值时为真,否则为假。术语称为p当且仅q。

原创粉丝点击