布尔代数概述
我们有两个价值观:T
and F
.
我们可以通过三种方式组合这些值:NOT
, AND
, and OR
.
NOT
NOT
最简单的是:
我们可以将其写为真值表:
when given.. | results in...
============================
T | F
F | T
为了简洁
x | NOT x
=========
T | F
F | T
考虑到NOT
as the 补充,也就是说,它将一个值转换为另一个值。
AND
AND
适用于两个值:
x y | x AND y
=============
T T | T
T F | F
F T | F
F F | F
AND
is T
仅当两者都论点(值x
and y
在真值表中)是T
— and F
否则。
OR
OR
is T
当它的至少一个参数是T
:
x y | x OR y
=============
T T | T
T F | T
F T | T
F F | F
组合
我们可以定义更复杂的组合。例如,我们可以写一个真值表x AND (y OR z)
,第一行在下面。
x y z | x AND (y OR z)
======================
T T T | ?
一旦我们知道如何评估x AND (y OR z)
,我们可以填写表格的其余部分。
To evaluate组合,评估各个部分并从那里开始工作。括号显示首先评估哪些部分。你从普通算术中学到的知识将帮助你解决这个问题。说你有10 - (3 + 5)
。首先评估括号中的部分以获得
10 - 8
并像往常一样评估以获得答案,2
.
评估这些表达式工作原理类似。我们知道如何OR
从上面开始工作,所以我们可以稍微扩展我们的表:
x y z | y OR z | x AND (y OR z)
===============================
T T T | T | ?
现在我们几乎就像回到了x AND y
桌子。我们只需将值替换为y OR z
并评估。在第一行,我们有
T AND (T OR T)
这与以下相同
T AND T
这就是简单的T
.
我们对所有 8 个可能的值重复相同的过程x
, y
, and z
(2 个可能的值x
乘以 2 的可能值y
乘以 2 的可能值z
) to get
x y z | y OR z | x AND (y OR z)
===============================
T T T | T | T
T T F | T | T
T F T | T | T
T F F | F | F
F T T | T | F
F T F | T | F
F F T | T | F
F F F | F | F
有些表达式可能比需要的更复杂。例如,
x | NOT (NOT x)
===============
T | T
F | F
换句话说,NOT (NOT x)
is 相等的只是x
.
德摩根规则
DeMorgan 的规则是方便的技巧,让我们可以在适合某些模式的等效表达式之间进行转换:
NOT (x AND y) = (NOT x) OR (NOT y)
NOT (x OR y) = (NOT x) AND (NOT y)
(你可能会认为这是如何NOT
通过简单的分布AND
and OR
表达式。)
你的常识可能已经明白这些规则了!例如,想一想“你不能同时出现在两个地方”这样的民间智慧。我们可以使它符合第一条规则的第一部分:
NOT (here AND there)
应用该规则,这就是“你不在这里或你不在那里”的另一种说法。
锻炼:你如何用简单的英语表达第二条规则?
对于第一条规则,让我们看一下等号左侧表达式的真值表。
x y | x AND y | NOT (x AND y)
=============================
T T | T | F
T F | F | T
F T | F | T
F F | F | T
现在是右侧:
x y | NOT X | NOT Y | (NOT x) or (NOT y)
========================================
T T | F | F | F
T F | F | T | T
F T | T | F | T
F F | T | T | T
两个表中的最终值相同。这证明了表达式是等价的。
锻炼:证明表达式NOT (x OR y)
and (NOT x) AND (NOT y)
是等价的。