- 离散数学资源
- 离散数学 - 快速指南
- 离散数学 - 资源
- 离散数学 - 讨论
布尔表达式与函数
布尔代数是逻辑代数。它处理可以具有两个离散值0(假)和1(真)的变量;以及具有逻辑意义的运算。操纵符号逻辑的最早方法是由乔治·布尔发明的,后来被称为布尔代数。
布尔代数由于其在开关理论、构建基本电子电路和数字计算机设计中的广泛应用,现已成为计算机科学中不可或缺的工具。
布尔函数
布尔函数是一种特殊的数学函数$f: X^n \rightarrow X$,其中$X = \lbrace {0, 1} \rbrace$是布尔域,n是非负整数。它描述了如何从布尔输入推导出布尔输出的方法。
示例 − 令$F(A, B) = A’B’$。这是一个从布尔变量有序对集合到集合$\lbrace {0, 1} \rbrace$的2次函数,其中$F(0, 0) = 1, F(0, 1) = 0, F(1, 0) = 0$和$F(1, 1) = 0$
布尔表达式
布尔表达式总是产生布尔值。布尔表达式由布尔常量(真或假)、布尔变量和逻辑连接词组合而成。每个布尔表达式都代表一个布尔函数。
示例 − $AB’C$是一个布尔表达式。
布尔恒等式
双重补元律
$\sim(\sim A) = A$
补元律
$A + \sim A = 1$ (或运算)
$A . \sim A = 0$ (与运算)
幂等律
$A + A = A$ (或运算)
$A . A = A$ (与运算)
同一律
$A + 0 = A$ (或运算)
$A . 1 = A$ (与运算)
支配律
$A + 1 = 1$ (或运算)
$A . 0 = 0$ (与运算)
交换律
$A + B = B + A$ (或运算)
$A. B = B . A$ (与运算)
结合律
$A + (B + C) = (A + B) + C$ (或运算)
$A. (B . C) = (A . B) . C$ (与运算)
吸收律
$A. (A + B) = A$
$A + (A . B) = A$
简化律
$A . (\sim A + B) = A . B$
$A + (\sim A . B) = A + B$
分配律
$A + (B . C) = (A + B) . (A + C)$
$A . (B + C) = (A . B) + (A . C)$
德摩根律
$\sim (A . B) = \sim A + \sim B$
$\sim (A+ B) = \sim A . \sim B$
规范形式
对于布尔表达式,有两种规范形式:
- 最小项之和 (SOM) 形式
- 最大项之积 (POM) 形式
最小项之和 (SOM) 或积之和 (SOP) 形式
最小项是所有变量的乘积,这些变量以其直接形式或补形式出现。任何布尔函数都可以表示为其1-最小项的和,而函数的反函数可以表示为其0-最小项的和。因此,
F(变量列表)= ∑(1-最小项索引列表)
和
F'(变量列表)= ∑(0-最小项索引列表)
A | B | C | 项 | 最小项 |
---|---|---|---|---|
0 | 0 | 0 | x’y’z’ | m0 |
0 | 0 | 1 | x’y’z | m1 |
0 | 1 | 0 | x’yz’ | m2 |
0 | 1 | 1 | x’yz | m3 |
1 | 0 | 0 | xy’z’ | m4 |
1 | 0 | 1 | xy’z | m5 |
1 | 1 | 0 | xyz’ | m6 |
1 | 1 | 1 | xyz | m7 |
示例
令 $F(x, y, z) = x' y' z' + x y' z + x y z' + x y z $
或者,$F(x, y, z) = m_0 + m_5 + m_6 + m_7$
因此,
$F(x, y, z) = \sum (0, 5, 6, 7)$
现在我们将找到$F(x, y, z)$的补集
$F' (x, y, z) = x' y z + x' y' z + x' y z' + x y' z'$
或者,$F'(x, y, z) = m_3 + m_1 + m_2 + m_4$
因此,
$F'(x, y, z) = \sum (3, 1, 2, 4) = \sum (1, 2, 3, 4)$
最大项之积 (POM) 或和之积 (POS) 形式
最大项是所有变量的加法,这些变量以其直接形式或补形式出现。任何布尔函数都可以表示为其0-最大项的乘积,而函数的反函数可以表示为其1-最大项的乘积。因此,
F(变量列表)= $\pi$(0-最大项索引列表)。
和
F'(变量列表)= $\pi$(1-最大项索引列表)。
A | B | C | 项 | 最大项 |
---|---|---|---|---|
0 | 0 | 0 | x + y + z | M0 |
0 | 0 | 1 | x + y + z’ | M1 |
0 | 1 | 0 | x + y’ + z | M2 |
0 | 1 | 1 | x + y’ + z’ | M3 |
1 | 0 | 0 | x’ + y + z | M4 |
1 | 0 | 1 | x’ + y + z’ | M5 |
1 | 1 | 0 | x’ + y’ + z | M6 |
1 | 1 | 1 | x’ + y’ + z’ | M7 |
示例
令 $F(x, y, z) = (x + y + z) . (x+y+z') . (x+y'+z) . (x'+y+z)$
或者,$F(x, y, z) = M_0 . M_1 . M_2 . M_4$
因此,
$F (x, y, z) = \pi (0, 1, 2, 4)$
$F''(x, y, z) = (x+y'+z') . (x'+y+z') . (x'+y'+z) . (x'+y'+z')$
或者,$F(x, y, z) = M_3 . M_5 . M_6 . M_7$
因此,
$F '(x, y, z) = \pi (3, 5, 6, 7)$
逻辑门
布尔函数是使用逻辑门实现的。以下是逻辑门:
非门
非门将单个比特输入反转为单个比特输出。
A | ~A |
---|---|
0 | 1 |
1 | 0 |
与门
与门是一种逻辑门,只有当所有输入都为高电平时才输出高电平,否则输出低电平。点(.) 用于表示与运算。
A | B | A.B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
或门
或门是一种逻辑门,如果至少一个输入为高电平,则输出高电平。加号(+) 用于表示或运算。
A | B | A+B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
与非门
与非门是一种逻辑门,只有当所有输入都为高电平时才输出低电平,否则输出高电平。
A | B | ~(A.B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
或非门
或非门是一种逻辑门,只有当两个输入都为低电平时才输出高电平,否则输出低电平。
A | B | ~(A+B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
异或 (XOR) 门
异或门是一种逻辑门,如果输入不同,则输出高电平,否则输出低电平。
A | B | A⊕B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
异或非 (X-NOR) 门
异或非门是一种逻辑门,如果输入相同,则输出高电平,否则输出低电平。
A | B | A X-NOR B |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |