【问题标题】:How do I normalize and simplify (A ^ B) --> !B v C v !(A v C)如何规范化和简化 (A ^ B) --> !B v C v !(A v C)
【发布时间】:2017-01-08 20:56:56
【问题描述】:

如何规范化和简化(A ^ B) --> !B v C v !(A v C)

我已经使用(A->B) = !AB 的规则对表达式进行了规范化。但我不确定如何简化它。我最终得到了答案!A v !B v C

这是正确的,如果不是,我哪里错了?

【问题讨论】:

  • C 是从哪里出现的,您将无需提供更多上下文。
  • 我们不需要知道表达式中的 A、B 或 C 是​​什么来简化它。 @Alex - 你在数学交流中可能会有更多的运气。程序员不会经常遇到这种纯逻辑/数学问题。我不得不掸去旧数学学位的灰尘,才能弄清楚如何解决这个问题……
  • @Jake:但是这个问题被标记为prolog,所以通常这意味着一个人正在寻找Prolog中的程序(你不觉得)。所以至少它被错误地标记了。

标签: logic logical-operators


【解决方案1】:

我得到了和你一样的答案。

1. (A ^ B) => !B V C V !(A v C)
2. (A ^ B) => !B V C V (!A ^ !C)
3. (A ^ B) => !B V (C V (!A ^ !C))  //(C V (!A ^ !C)) => C V !A
4. (A ^ B) => !B V (C V !A)
5. (A ^ B) => !A V !B V C
6. !(A ^ B) V (!A V !B V C)
7. (!A V !B) V (!A V !B V C)
8. !A V !B V C

建议...为第 1 步中的表达式做一个真值表,看看它是否与第 8 步中的表达式的真值表匹配。这将验证我们的逻辑是否正确。就简化而言,第 8 步已尽其所能。

希望这会有所帮助!

【讨论】:

  • 非常感谢!
最近更新 更多