程序员的数学——逻辑基础01

Posted jaypark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员的数学——逻辑基础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

 

                          

 

以上是关于程序员的数学——逻辑基础01的主要内容,如果未能解决你的问题,请参考以下文章

快速入门系列--TSQL-01基础概念

程序员诺禾:技术差的程序员,90%都输在这点上,诺禾

程序员诺禾:技术差的程序员,90%都输在这点上,诺禾

程序员面试算法开发,竟倒在这道基础数学题!TypeScript 3.1.2发布;iPhone XR本月19日开启预购...

程序员面试算法开发,竟倒在这道基础数学题!微软开源部分《我的世界》Java 代码;Ember.js 3.4.5发布

程序员的数学好难学?一切从基础开始!