【问题标题】:Boolean Algebra - How to Simplify布尔代数 - 如何简化
【发布时间】:2026-01-25 12:10:01
【问题描述】:

从事 JS 工作,刚开始学习布尔代数。想知道是否有办法简化这个表达式:

(!variableOne || !variableTwo)

我记得听说过一些关于两个“非”如何意味着您可以更改符号的内容,但是当我在 Google 上搜索“布尔代数”时,我并没有看到太多关于此的信息。

谢谢!

【问题讨论】:

  • 你在找De Morgan's Law
  • 只是为了好玩:variableOne<=!variableTwo.

标签: javascript boolean boolean-logic boolean-operations


【解决方案1】:

你可以拿De Morgan's laws:

!(a && b) = !a || !b 
!(a || b) = !a && !b

在你的情况下是

!(variableOne && variableTwo)

【讨论】:

    【解决方案2】:

    正如De'Morgans Law 所说,您可以将!a || !b 转换为!(a && b)

    这样你就可以拥有!(variableOne && variableTwo)

    【讨论】:

      【解决方案3】:

      迟到的答案,但要进一步解释:

      • and 语句的否定在逻辑上等同于 or 语句,其中每个组件都被否定。

      象征性地: !(A && B) = !A || !B

      • or 语句的否定在逻辑上等同于 and 语句,其中每个组件都被否定。

      象征性地: !(A || B) = !A && !B

      在您的情况下,您使用了!variableOne || !variableTwo,因此它等同于第一条法律!(variableOne && variableTwo) == !variableOne || !variableTwo

      【讨论】: