几种常见的逻辑运算(二)
一、定义五:条件语句(蕴含)
设有命题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为负数时,它的绝对值为它的相反数,其他情况下,不需要变换。