12.2 布尔函数的表示
极小项
这个不用管那么多,其实就是所有变元做布尔积。比如3个布尔元x,y,z:
x | y | z | xyz |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
可以看到这种情况下,只有所有变元都是1,最终结果才为1,其他情况下都是0。
构建布尔函数
在之前都是如果知道布尔函数,可以通过定理来化简布尔函数,但是如果只知道真值表,如何构建布尔函数呢?
比如下面的真值表:
x | y | z | F |
---|---|---|---|
1 | 1 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
如何构建这个真值表的布尔函数呢?
这里就可以用上面的极小项来实现了,因为我们看到结果中只有一个值为1,其他情况下都是0。所以我们可以得出式子为:
F ( x , y , z ) = x y ‾ z , 这 里 为 什 么 是 y ‾ 呢 ? 因 为 当 时 其 值 为 0 , 所 以 需 要 处 理 一 下 。 F(x,y,z)=x \overline{y} z,这里为什么是 \overline{y} 呢?因为当时其值为0,所以需要处理一下。 F(x,y,z)=xyz,这里为什么是y呢?因为当时其值为0,所以需要处理一下。
上面是有1个1,其他都是0,如果有2个1时:
x | y | z | G |
---|---|---|---|
1 | 1 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
我们就可以表示成2个极小项的和:
G ( x , y , z ) = x y ‾ z + x ‾ y z ‾ G(x,y,z)=