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

Simplifying the boolean expression: A ^ B * C

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

这取决于运算符的优先级。通常 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,它只是它的合取范式。