布尔表达式的补集与对偶有什么区别?

25

这是同样的事情吗?还是有一点区别?我只是想确保我没有误解任何内容。


1
“补集”是一种“自对偶”操作。 - paulsm4
我投票关闭此问题,因为它(目前)不是一个编程问题。 - Raymond Chen
7个回答

33

布尔对偶是通过将AND替换为OR,将OR替换为AND而生成的。其中补集本身不受影响,而表达式的补集是变量的否定,并将AND替换为OR,反之亦然。

考虑以下内容:

A+B

补集: A'B'

对合: AB


4
嗨,假设我们有一个语句:A + A' = 1,那么它的补集将是A' . A = 0,而对偶则是A . A' = 0,这是错误的。你能解释一下吗? - Anil
2
所有这些陈述都是正确的。A AND NOT A 总是为假。 - JAustin
1
对偶也会将1变为0,0变为1。这是否意味着进行对偶操作也会导致整体值的补码?例如,如果A+B=0,则补码将是A'.B'=1,对偶将是A.B=1。两者都会使整体值为1,这是原始值的补码。 - MsA
互补和对偶的实际用途是什么? - X10D

5
“对偶原理”指的是一个恒等式的对偶也是一个恒等式。布尔恒等式包括X+0=X或X+X=X等。这些恒等式有很多种。对偶只适用于恒等式。要找到对偶,您需要交换运算符(+和.)并交换恒等元素(0和1,如果有任何0和1)以将X+0=X更改为X.1=X,并将X+X=X更改为X.X=X,从而创建新的恒等式,这些恒等式也是有效的。从像X'Y+XY'=1这样的任意表达式中创建对偶没有意义。补集取决于像f1(x,y)=X'Y+XY'这样的任意表达式,其补集将是f2(x,y)=(X+Y')·(X'+Y),如果您将值插入f1(x,y)中,则将得到与将相同的值插入f2(x,y)中完全相反的结果。补集是通过否定每个变量并交换每个运算符来形成的。

3

假设函数f = {a, c', h', i', l, l, e, s, 1, 0}

f的补集将是 f = {a', c, h, i, l', l', e', s', 0, 1}

f的对偶将是 f = {a, c', h', i', l, l, e, s, 0, 1} 注:对于对偶,字面值不变。只有OR门被替换为AND门,反之亦然,并且1替换为0,反之亦然。

但在取补集时,除了门和值之外,文字值也将被取补。

这里是完整的示例: 如果我们想要获得x'+y'的补集

补集说:(x')'.(y')'

对偶说:x.y


2
在对偶中,AND运算符被替换为OR运算符,OR运算符被替换为AND运算符,但补集保持不变。在补集中,AND被替换为OR,OR被替换为AND,并且补集也发生了改变。

1
除了已经说过的之外,还需要注意1的对偶是0,反之亦然,这类似于补集操作。
例如:x+1 = 1
对偶为:x.0 = 0

1
在寻找对偶时,我们将以下内容进行替换:
  1. 将AND替换为OR,反之亦然
  2. 将0替换为1,反之亦然
在寻找补集时,除了上述两点之外,我们还需要进行以下替换:

将A替换为A',反之亦然(即,将变量与其补集进行替换)


0

实际上,二元性是通过交换1和0以及AND和OR获得的, 但对于补集,另一个问题将包括在这种变化中,即变量。 如果x,则将其替换为x bar。 例如 f=(x+y) f的二元性= x.y 但是 补集 = x(bar).y(bar)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接