Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logic 简化一组AND和OR子句_Logic_Conditional - Fatal编程技术网

Logic 简化一组AND和OR子句

Logic 简化一组AND和OR子句,logic,conditional,Logic,Conditional,因此,如果我有一组AND和OR子句,如下所示: Y = ( A + B ) . ( A + C' ) . ( B + D' ) 我可以这样简化它吗: Y = A . ( B + C' ) . ( B + D' ) ; Because A is common to ( A + B ) and ( A + C' ) Y = A . B . ( C' + D' ) ; Because B is common to ( B + C' ) and ( B + D' ) (A + B)(

因此,如果我有一组AND和OR子句,如下所示:

Y = ( A + B ) . ( A + C' ) . ( B + D' )
我可以这样简化它吗:

Y = A . ( B + C' ) . ( B + D' ) ; Because A is common to ( A + B ) and ( A + C' )
Y = A . B . ( C' + D' )         ; Because B is common to ( B + C' ) and ( B + D' )
(A + B)(A + C')(B + D')
(AA + AC' + AB + BC')(B + D')                          // expand first 2 groups
AAB + ABC' + ABB + BBC' + AAD' + AC'D' + ABD' + BC'D'  // expand all groups
AB + ABC' + AB + BC' + AD' + AC'D' + ABD' + BC'D'      // apply identity to reduce
AB + BC' + AD'                                         // eliminate redundant expressions

谢谢您的时间。

如果您使用以下值,则不需要:

A = 1
B = 0
C = 0
D = 0
如果你的简化版本是错误的,那么原始声明是正确的。您可以找到另一种表示它的方法,方法是展开布尔表达式,然后尝试将其代数化,如下所示:

Y = A . ( B + C' ) . ( B + D' ) ; Because A is common to ( A + B ) and ( A + C' )
Y = A . B . ( C' + D' )         ; Because B is common to ( B + C' ) and ( B + D' )
(A + B)(A + C')(B + D')
(AA + AC' + AB + BC')(B + D')                          // expand first 2 groups
AAB + ABC' + ABB + BBC' + AAD' + AC'D' + ABD' + BC'D'  // expand all groups
AB + ABC' + AB + BC' + AD' + AC'D' + ABD' + BC'D'      // apply identity to reduce
AB + BC' + AD'                                         // eliminate redundant expressions
最终结果在你的符号中是这样的

(A . B) + (B . C') + (A . D')
再往前走一步,它就可以实现

B . (A + C') + (A . D')


否,如果使用以下值:

A = 1
B = 0
C = 0
D = 0
如果你的简化版本是错误的,那么原始声明是正确的。您可以找到另一种表示它的方法,方法是展开布尔表达式,然后尝试将其代数化,如下所示:

Y = A . ( B + C' ) . ( B + D' ) ; Because A is common to ( A + B ) and ( A + C' )
Y = A . B . ( C' + D' )         ; Because B is common to ( B + C' ) and ( B + D' )
(A + B)(A + C')(B + D')
(AA + AC' + AB + BC')(B + D')                          // expand first 2 groups
AAB + ABC' + ABB + BBC' + AAD' + AC'D' + ABD' + BC'D'  // expand all groups
AB + ABC' + AB + BC' + AD' + AC'D' + ABD' + BC'D'      // apply identity to reduce
AB + BC' + AD'                                         // eliminate redundant expressions
最终结果在你的符号中是这样的

(A . B) + (B . C') + (A . D')
再往前走一步,它就可以实现

B . (A + C') + (A . D')


我认为这里唯一有用的等价物是

(A+B)。(A+C')==A+(B.C'))

所以它变成了

(A+(B.C'))。(B+D')

不知道这是否有助于你获得更有效/有用的东西

A   B   C'  D'  f()
TRUE    TRUE    TRUE    TRUE    TRUE
TRUE    TRUE    TRUE    FALSE   TRUE
TRUE    TRUE    FALSE   TRUE    TRUE
TRUE    TRUE    FALSE   FALSE   TRUE
TRUE    FALSE   TRUE    TRUE    TRUE
TRUE    FALSE   TRUE    FALSE   TRUE
TRUE    FALSE   FALSE   TRUE    FALSE
TRUE    FALSE   FALSE   FALSE   FALSE
FALSE   TRUE    TRUE    TRUE    TRUE
FALSE   TRUE    TRUE    FALSE   FALSE
FALSE   TRUE    FALSE   TRUE    TRUE
FALSE   TRUE    FALSE   FALSE   FALSE
FALSE   FALSE   TRUE    TRUE    FALSE
FALSE   FALSE   TRUE    FALSE   FALSE
FALSE   FALSE   FALSE   TRUE    FALSE
FALSE   FALSE   FALSE   FALSE   FALSE

在电子表格中观看直播:

我认为这里唯一有用的等价物是

(A+B)。(A+C')==A+(B.C'))

所以它变成了

(A+(B.C'))。(B+D')

不知道这是否有助于你获得更有效/有用的东西

A   B   C'  D'  f()
TRUE    TRUE    TRUE    TRUE    TRUE
TRUE    TRUE    TRUE    FALSE   TRUE
TRUE    TRUE    FALSE   TRUE    TRUE
TRUE    TRUE    FALSE   FALSE   TRUE
TRUE    FALSE   TRUE    TRUE    TRUE
TRUE    FALSE   TRUE    FALSE   TRUE
TRUE    FALSE   FALSE   TRUE    FALSE
TRUE    FALSE   FALSE   FALSE   FALSE
FALSE   TRUE    TRUE    TRUE    TRUE
FALSE   TRUE    TRUE    FALSE   FALSE
FALSE   TRUE    FALSE   TRUE    TRUE
FALSE   TRUE    FALSE   FALSE   FALSE
FALSE   FALSE   TRUE    TRUE    FALSE
FALSE   FALSE   TRUE    FALSE   FALSE
FALSE   FALSE   FALSE   TRUE    FALSE
FALSE   FALSE   FALSE   FALSE   FALSE

在电子表格中观看现场直播:

eZanmoto,乍一看它似乎可以工作,但我快速浏览并为每一个都做了真相表,下面是失败的例子:

@A = B = C = D = True
Original = True
First = True
Second = False

@A = C = True, B = D = True
Original = True
First = False
Second = False

@A = True, B = C = D = False
Original = True
First = True
Second = False

@A = C = False, B = D = True
Original = True
First = False
Second = False

@A = C = D = False, B = True
Original = True
First = False
Second = False

eZanmoto,乍一看,它似乎会起作用,但我很快就为每一个都做了真相表,下面是失败的例子:

@A = B = C = D = True
Original = True
First = True
Second = False

@A = C = True, B = D = True
Original = True
First = False
Second = False

@A = True, B = C = D = False
Original = True
First = True
Second = False

@A = C = False, B = D = True
Original = True
First = False
Second = False

@A = C = D = False, B = True
Original = True
First = False
Second = False

迟交的答复。我最近了解了更多,这是一种系统化的方法来模拟布尔式EPXpressions

我无意中发现这似乎很好,并认为我应该用它来验证我先前的答案:

import logic
A,B,C,D = logic.bools('ABCD')

print logic.boolsimp((A & B) | (A & ~C) | (B & ~D))
没错,它打印出来了

(B & ~D) | (~C & A) | (B & A)
Pythonists:不必为逻辑运算选择奇怪的运算符;这主要是因为在Python中不能重载
而不是


健康检查 作为合理性检查,我确实检查了算法实现是否“看到”了我认为会导致潜在简化的等价性:

print logic.boolsimp((A & B) | (A & ~C))
print logic.boolsimp(A & (B | ~C))
打印两次相同的输出(
(~C&A)|(B&A)

迟交的回答。我最近了解了更多,这是一种系统化的方法来模拟布尔式EPXpressions

我无意中发现这似乎很好,并认为我应该用它来验证我先前的答案:

import logic
A,B,C,D = logic.bools('ABCD')

print logic.boolsimp((A & B) | (A & ~C) | (B & ~D))
没错,它打印出来了

(B & ~D) | (~C & A) | (B & A)
Pythonists:不必为逻辑运算选择奇怪的运算符;这主要是因为在Python中不能重载
而不是


健康检查 作为合理性检查,我确实检查了算法实现是否“看到”了我认为会导致潜在简化的等价性:

print logic.boolsimp((A & B) | (A & ~C))
print logic.boolsimp(A & (B | ~C))
打印两次相同的输出(
(~C&A)|(B&A)

我想我知道哪里出了问题:当我计算出A时,我想我应该得到
A+(B.C')。(B+D')
。这是正确的还是我又搞砸了?我想我知道我错在哪里了:当我算出A时,我想我应该得到
A+(B.C')。(B+D')
。这是正确的还是我又搞砸了?又加了一些扣款。没有什么大的简化,我又加了一些推论。没有发现什么大的简化