离散数学学习笔记(三)

几种常见的逻辑运算(二)

一、定义五:条件语句(蕴含)

      设有命题p和命题q,复合命题p→q表示“如果p,那么q”。当p为真(T)而q为假(F)时,它的真值为假(F),其他情况都为真(T)。

    在条件语句中,我们称p命题为假设(前提或前件),q命题为结论(后件)。

    例1:  如果明天是晴天,那么我和家人会去植物园烧烤。

                设命题p为:明天是晴天,命题q为:我和家人会去植物园烧烤,我们分析这两个命题组合的4种情况:

                a:命题p为T:明天晴天,命题q为T:我和家人会去植物园烧烤,符合要表达的意思,p→q为T;

                b:命题p为T:明天晴天,命题q为F:我和家人不会去植物园烧烤,违反了要表达的意思(说了谎),p→q为F;

                c:命题p为F:明天不是晴天,命题q为T:我和家人会去植物园烧烤,因为限制条件p不成立,所以我可以去,也可以不去烧烤,并没有说谎,符合我们要表达的意思,p→q为T;

                d:命题p为F:明天不是晴天,命题q为F:我和家人不会去植物园烧烤,同情况c,,p→q为T。

    日常中我们常见的条件表述方式还有:

    如果p,则q                                                                            p蕴含q

    如果p,q                                                                                当p时,q

    q,如果p的话

    为了便于理解,我们可以把条件语句想象成义务或合同,比如我们常在合同中这么写:

    如果我在10天内没有收到货,那么我会扣除一定的违约金。

    “扣除一定的违约金”在“10天内没有收到货”这个条件成立的时候一定会发生,如果没有发生,则说明没有按合同办事,这个条件语句为假(F),但是当条件没发生(不成立时),这个事情则可能发生(其他违约情况被扣了违约金)也可能不发生,这都没有违反合同条款,所以条件语句也为真(T)。

真值表:

                   

    条件语句的逆命题:

    如果有条件语句p→q,我们将q→p称之为其逆命题。

    例1的逆命题为:如果明天我和家人会去植物园烧烤,那么明天是晴天。

    从例1中我们知道:如果明天不是晴天,我们也有可能会去烧烤,显然我们无法通过是否进行了烧烤这个事来确定明天的天气,所以条件语句的逆命题与原条件语句意思不相同。

                 

    从真值表中,我们也可以看到p→q的和q→p的真值表不同。

    条件语句的反命题:

    如果有条件语句p→q,我们将p→q称之为其反命题。

    例1的反命题为:如果明天不是晴天,那么我和家人不会去植物园烧烤。

    从例1中我们知道:如果明天不是晴天,我们也有可能会去烧烤,所以条件语句的反命题与原条件语句意思也不相同。

                    

    同样从真值表中,我们也可以看到p→q的和p→q的真值表不同。

    条件语句的逆否命题:

    如果有条件语句p→q,我们将q→p称之为其逆否命题。

    例1的逆否命题为:如果明天我和家人没去植物园烧烤,那么明天不是晴天。

    通过真值表,我们可以证明条件语句的逆否命题与原命题具有相同的真值表,像这种具有相同真值表的复合命题,我们称之为等价

                       


二、条件语句应用

     在编程中我们经常用到条件语句,比如C++中我们这么写:

//取x的绝对值
if ( x < 0 ){
  x *= -1;
}

当x为负数时,它的绝对值为它的相反数,其他情况下,不需要变换。

猜你喜欢

转载自blog.csdn.net/hn_tzy/article/details/103021733