程序员的数学——逻辑基础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

                          

猜你喜欢

转载自www.cnblogs.com/JAYPARK/p/9574772.html