第一章 逻辑--真与假的二元世界

简介: 第一章 逻辑--真与假的二元世界

本章学习内容

乘车费用问题-- 兼顾完整性和排他性

车费规则

命题及真假

我们在思考问题的时候,要注意有没有遗漏和重复。排除是否有遗漏的方法就是画辅助线,用图说话

建立复杂命题

这里我们常用的图形来展示,常用的真值表和文氏图给大家一目了然的说明范围

逻辑非—不是A

¬A

真值表

文氏图

逻辑与 — A并且B

A∧B

真值表

文氏图

那我们如何来表示¬ A∧B呢?

¬ A∧B

文氏图

逻辑或 — A或者B

A∨B

真值表

文氏图

(¬A)∨(¬B)

文氏图

异或 — A或者B(但不都满足) A⊕B

真值表

文氏图

电路图

相等----A和B相等 A=B

真值表

文氏图

思考:异或的否定

蕴含—若A则B

A=>B

真值表

(¬A)∨B的真值图

B=>A文氏图

(¬B)=>(¬A)文氏图

逆否命题

A与B关系的所有真值表

摩根定律

摩根定律是什么?

(¬A)∨(¬B)可以改为¬(A∧B),(¬A)∧(¬B)可以改为¬(A∨B)。

真值表

摩根定律的特性:对偶性

卡诺图

卡诺图是简化复杂逻辑表达式的有效工具

二灯游戏

首先借助逻辑表达式进行思考

学习使用卡诺图

卡诺图是将所有命题的真假组合以二维表的形式表示的图。

卡诺图的复合框(解释)

由此我们就可以推出,所有打钩格所在的区域为

(¬A)∨B

所以我们就可以简化得知((¬A)∧B)∨ ((¬A)∧(¬B)) ∨(A∧B)是相等的。这就是卡诺图的方便简化我们的逻辑表达式。

三灯游戏

这里我们只靠想像就做不到了,老实画卡诺图

横向组合框,就是A为false的区域,因此用¬A表示

正中间组合框,就是C为true的区域,因此用C表示

因此以上我们可以表示为 (¬A)∨C

带条件的逻辑与(&&)

定义

由此可以得出

if(A&&B){
...
}

if(A){
   if(B){
   ...
   }
}

是相等的。

带条件的逻辑或(||)

由此可以得出

if(A||B){
...
}

if(A){
   
}else{
   if(B){
   ...
   }
}

是相等的。

三元逻辑中的否定(!)

定义

三元逻辑的德*摩根定律

(!A)||(!B)=!(A&&B) (!A)&&(!B)=!(A||B)

由此可以得出

if(!(x>=0 && y>=0)){
...
}

if(x<0 || y<0){
   ...
}

是相等的。

本章小结

逻辑的各种表现形式

感谢大家观看,我们下次见

目录
相关文章
|
5月前
|
开发者
条件判断的模式问题之在契约式编程中,先验条件和后验条件分别代表什么
条件判断的模式问题之在契约式编程中,先验条件和后验条件分别代表什么
|
4月前
|
算法
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
|
6月前
|
C语言 C++ 容器
c++primer plus 6 读书笔记 第五章 循环和关系表达式
c++primer plus 6 读书笔记 第五章 循环和关系表达式
|
设计模式 Java Spring
这个无敌设计,可以解析并运算任意数学表达式
下面用解释器模式来实现一个数学表达式计算器,包含加、减、乘、除运算。 首先定义抽象表达式角色IArithmeticInterpreter接口。
152 0
|
7月前
|
自然语言处理 算法 编译器
编译原理复习四:编译器结构 消除左递归、左公因子 最右推导 寻找句柄讲解(附题目和答案)
编译原理复习四:编译器结构 消除左递归、左公因子 最右推导 寻找句柄讲解(附题目和答案)
172 0
|
知识图谱
举例解释Lingo的条件执行@if语句
举例解释Lingo的条件执行@if语句
354 0
|
C++
C++ Primer Plus 第五章答案 循环和关系表达式
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
69 0
|
算法 索引 Python
从一道简单算法题里面解释什么叫做 O(1)
从一道简单算法题里面解释什么叫做 O(1)
126 0
|
数据可视化 数据挖掘 Python
答读者问:R语言批量做一元线性回归的简单小例子
答读者问:R语言批量做一元线性回归的简单小例子
|
人工智能 开发者
条件概率小例子 | 学习笔记
快速学习条件概率小例子
条件概率小例子 | 学习笔记