程序员的数学——逻辑基础01
复杂命题
基础的复杂逻辑命题
00.逻辑非
如果我们以“今天是礼拜天”为命题的话,那么对这个命题作逻辑非运算后就可以得到“今天不是礼拜天”。
那么我们可以引出逻辑非的定义:如果命题A是true,那么它的逻辑非运算之后为false;
如果命题A是false,那么它的逻辑非运算之后为true。
逻辑非是单目运算(只对一个命题进行运算)
01.逻辑与
如果我们以“今天是礼拜天”,“今天是晴天”为基础的话,那么“今天是礼拜天而且今天是晴天”就是逻辑与运算后得到的结果。
由此我们可以引出逻辑与运算的定义:
当且仅当两个命题都true时,逻辑与运算后的命题才为true。否则为false。
其实逻辑与运算是可以拓展的,可以是任意大于等于2的命题数量参与运算。
逻辑与可以翻译成A并且B,那么如果能用文氏图来表达的话(命题用集合来表示),逻辑与运算结果就是求交集。
02.逻辑或
如果我们以“我今天去超市”和“我今天要运动”为基础的话,经过逻辑或运算后的命题可以表示为“我今天去超市或者我要去运动”。
由此我们可以得到逻辑或运算的定义:
只要命题中任意一个命题为true,逻辑或运算后的命题就为true,否则为false。
其实逻辑或运算时可以拓展的,可以是任意大于等于2的命题数量参与运算。
逻辑或可以翻译成A或者B,那么如果能用文氏图来表达的话(命题用集合来表示),逻辑或运算就是求并集。
03.逻辑相等
假设有两个命题A,B,那么“A和B相等”能成为一条语句。我们可以表示为“A = B”。
由此我们可以得到逻辑相等的定义:
A,B都为true时,A=B为true。
A,B都为false时,A = B为true
其余情况为false。
04.复杂逻辑异或
概述:这里的异或和上面的简单逻辑或不同,只有两个命题不相等时,才为true。其余时刻为false。
05.复杂逻辑和或
概述:这里的和或和上面的简单逻辑不同,只有当两个命题相等时,才为true。其余时刻为false。
这里我们可以发现复杂逻辑和或和逻辑相等是相等的。
06.逻辑蕴含关系
如果存在逻辑A,B,并且满足若A则B。则逻辑A与B存在蕴含关系。
也就是说B包含A(A是B的子集)。
若A则B的运算则如下所示
若A为true,B为ture,则若A则B为true。
若A为true,B为false,则若A则B为false。
若A为false,B为true或者false,则若A则B为true。
理解:如果我当选了,那么我将会减税。
如果这个政治家当选了,选民将期待他能减税。再者,如果这个政治家没有当选,那么选民就无法指望他能够减税,尽管这个人或许有能力影响使当权者减税。只有在该政治家当选却没有减税的情况下,违背了他的诺言。
对于单一命题
如果我们让设定一个命题,那么肯定存在对应的否命题,逆命题还有逆否命题。
结语:逻辑学是一门独立的学科,这里只是非常简要的进行了介绍,关于逻辑学和逻辑基础的问题,后续应该会有相应的文章加以补充。
参考文献:程序员的数学 【日】 结城浩
离散数学 【美】 Kenneth H. Rosen