探讨布尔运算的规律

发布于:2022-11-29 ⋅ 阅读:(837) ⋅ 点赞:(0)

探讨布尔运算的规律

本文探讨的布尔运算仅限AND与,OR或,XOR异或三种。本文探讨的运算规律仅限交换律,结合律,分配律三种。其中分配律会依据不同的运算组合展开。

1. 定义

  1. AND与。a AND b,当且仅当 a = true 并且 b = true 时,a AND b = true
  2. OR或。a OR b,如果ab至少有一个为true,表达式a OR b就为true,否则为false.
  3. XOR异或。a XOR b,如果ab同时为true则表达式a XOR btrue,否则为false.

以上定义对应的真值表如下:

a b a AND b a OR b a XOR b
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

(表中用1表示true,用0表示false)

2. 运算律

2.1 交换律

根据前面的定义,交换律显然对三种运算都满足。

- 交换律
AND 满足
OR 满足
XOR 满足

2.2 结合律

2.2.1 考察AND与运算的结合律

比较a AND b AND c是否始终与a AND (b AND c)相等,如果是,则满足结合律,否则不满足。

观察真值表

- 1 2 3 4 5 6 7 8
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
a AND b AND c 0 0 0 0 0 0 0 1
a AND (b AND c) 0 0 0 0 0 0 0 1

上表列出了a b c的所有可能值的所有组合,最后两行的值,在同列始终相等,所以AND满足结合律。

这里不需要再验证a AND b AND ca AND c AND b的关系,因为它们是等价的,证明如下:

  a AND b AND c
= a AND (b AND c) // 结合律
= a AND (c AND b) // 交换律
= a AND c AND b // 结合律

类似可以证明其他所有组合:

a AND b AND c = c AND b AND a
a AND b AND c = b AND a AND c
......

也就是一旦AND满足结合律和交换律,a b c三个元运算位置可以随便放而不影响表达式的值。

- 交换律 结合律
AND 满足 满足
OR 满足 -
XOR 满足 -

2.2.2 考察所有运算的结合律

类似再考察ORXOR可得到如下真值表:

Expression 1 2 3 4 5 6 7 8
a FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE
b FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE
c FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE
AND a AND b AND c FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
a AND (b AND c) FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
OR a OR b OR c FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
a OR (b OR c) FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
XOR a XOR b XOR c FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE
a XOR (b XOR c) FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE

在这里插入图片描述

综上,AND OR XOR全部满足交换律和结合律。

- 交换律 结合律
AND 满足 满足
OR 满足 满足
XOR 满足 满足

2.3 分配律

类似乘法对加法的分配律a(b+c) = ab+bc, 分配律涉及两种运算之间的关系。本文讨论的运算有AND OR XOR三种,两两之间的组合多达6种。

  1. AND, OR
  2. AND, XOR
  3. OR, AND
  4. OR, XOR
  5. XOR, AND
  6. XOR, OR

2.3.1 ANDOR的分配律

如果a AND (b OR c) = (a AND b) OR (a AND c)恒成立,则ANDOR的分配律成立。

观察真值表

- 1 2 3 4 5 6 7 8
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
a AND (b OR c) 0 0 0 0 0 1 1 1
(a AND b) OR (a AND c) 0 0 0 0 0 1 1 1

上表列出了a b c的所有可能值的所有组合,最后两行的值,在同列始终相等,所以ANDOR的分配律成立。

分配律 表达式
AND, OR 成立 a AND (b OR c) = (a AND b) OR (b AND c)

2.3.2 所有的分配律组合

参上述列表,可以计算其他几种情况

Expression 1 2 3 4 5 6 7 8
a FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE
b FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE
c FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE
AND → OR a AND (b OR c) FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE
(a AND b) OR (a AND c) FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE
AND → XOR a AND (b XOR c) FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE
(a AND b) XOR (a AND c) FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE
OR → AND a OR (b AND c) FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
(a OR b) AND (a OR c) FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
OR → XOR a OR (b XOR c) FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
(a OR b) XOR (a OR c) FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
XOR → AND a XOR (b AND c) FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE
(a XOR b) AND (a XOR c) FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE
XOR → OR a XOR (b OR c) FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE
(a XOR b) OR (a XOR c) FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE

由此可见,满足分配律的运算有如下三种:

分配律 表达式
AND, OR 成立 a AND (b OR c) = (a AND b) OR (b AND c)
AND, XOR 成立 a AND (b XOR c) = (a AND b) XOR (b AND c)
OR, AND 成立 a OR (b AND c) = (a OR b) AND (b OR c)
OR, XOR 不成立
XOR, AND 不成立
XOR, OR 不成立

结论

AND与,OR或,XOR异或三种运算都满足交换律和结合律。但这几种运算的两两组合,只有一半满足分配律。


资源链接:【腾讯文档】布尔运算律真值表


网站公告

今日签到

点亮在社区的每一天
去签到