【问题标题】:Comparing not then and vs and then not比较 not then and vs then not
【发布时间】:2014-08-17 11:58:36
【问题描述】:

我只是想知道ifwhile 语句之间是否有区别,如果条件是(!a && !b)(我们称之为语句1)或!(a && b)(我们称之为语句2)。

我正在考虑,我们有四种可能的a和b组合,我认为如果a != b,条件会有所不同。我只是希望有人可以检查我的逻辑。

如果 a 和 b 都为真,则陈述 1 和 2 都为假。如果 a 和 b 都为假,则陈述 1 和 2 都为真。 ?但是,如果a 为真,b 为假,或者相反,则陈述1 为假,但陈述2 为真。这是正确的吗?

【问题讨论】:

    标签: boolean boolean-logic boolean-operations


    【解决方案1】:

    您实际上是在询问布尔代数的基本定律:德摩根定律在重新处理或简化条件时非常有用。

    德摩根定律

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

    您认为您的陈述 1 和 2 可能不等价的直觉是正确的。对上述ab 的四种可能性进行研究表明,实际的等价物是德摩根定律给出的。

    键:∧是逻辑与(&&); ∨ 是逻辑或 (||)。

    图片来源:http://ndp.jct.ac.il/tutorials/mavomath/node15.html

    【讨论】:

      【解决方案2】:

      !(a && b) = !a || !b 这不等于 !a && !b。在第一种情况下,如果ab 为假,则结果为真。在第二种情况下,ab 必须为 false 才能使结果为 true。

      所以正如你所说,当a != b 时它们有不同的结果。

      【讨论】:

      • 好的,谢谢,我只是在寻找确认,并感谢语句 1 的替代表示。
      猜你喜欢
      • 1970-01-01
      • 2011-11-15
      • 2021-10-20
      • 1970-01-01
      • 2018-12-30
      • 2018-12-27
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多