简化布尔表达式:A ^ B * C

时间:2018-07-28 08:00:37

标签: boolean computer-science boolean-logic boolean-expression boolean-operations

我一直在尝试简化 布尔表达式: A ^ B * C已有一段时间了。我能够首先将其简化为:A * ~B + ~A * B * C,但在那之后,我似乎无法进一步简化它。使用在线简化表示它简化为(A + B) * (A + C) * (~A + ~B),但是为什么呢?以及用什么法律将其简化呢?

1 个答案:

答案 0 :(得分:0)

这取决于运算符的优先级。通常,AND在XOR之前,并且为A XOR (B AND C)。某些编程语言在不使用括号的情况下严格从左到右评估表达式,导致(A XOR B) AND C,假设您对^使用XOR,对*使用AND

您的简化似乎适用于后一种变体,但通常在布尔代数中,您首先要评估AND:

  A * ~(B*C) + ~A * B * C
= A * (~B + ~C) + ~A * B * C
= A * ~B + A * ~C + ~A * B * C

使用这种布尔表达式已经有一段时间了,所以我不知道是否可以进行进一步的简化(或者即使我是正确的)。

您确定您正确记下了在线简化程序的结果吗?因为术语(A + B) * (~A * ~B)的值为A * ~A * ~B + B * ~A * ~B = 0 + 0,因此整个术语的值为false。所有这些都假定运算符具有以下优先级:NOT> AND> OR。如果他们的解决方案中的最后一项是(~A + ~B),那么它会更有意义并评估为您的术语A * ~B + ~A * B * C,这就是它的合取范式。