和! 运营商足以让每一个可能的逻辑表达?

例如,逻辑表达式( a && b )ab都具有布尔值)可以像!(!a || !b)一样书写。 这是不是意味着&&是“无用的”? 这是否意味着所有的逻辑表达式只能使用||!


是的,正如其他答案指出的那样,这组操作符由||! 功能完整。 这是一个建设性的证明,展示了如何使用它们来表示布尔变量AB之间的所有十六种可能的逻辑连接词:

  • 真: A || !A A || !A
  • NAND B: !A || !B !A || !B
  • B意味着A: !B || A !B || A
  • A意味着B: !A || B !A || B
  • A或B: A || B A || B
  • 不是B: !B
  • 不是: !A
  • XOR B: !(!A || B) || !(A || !B) !(!A || B) || !(A || !B)
  • XNOR B: !(!A || !B) || !(A || B) !(!A || !B) || !(A || B)
  • A: A
  • B: B
  • A NOR B: !(A || B)
  • A并不意味着B: !(!A || B)
  • B并不意味着A: !(!B || A)
  • A和B: !(!A || !B)
  • 假: !(A || !A)
  • 请注意,NAND和NOR本身在功能上都是完整的(可以用上面的相同方法证明),所以如果您想验证一组操作符在功能上是否完整,就足以证明您可以表达NAND或NOR用它。

    下面是一张图,显示了上面列出的每个连接词的维恩图:

    在这里输入图像描述

    [资源]


    你所描述的是功能完整性。

    这描述了一组足以“表达所有可能的真值表”的逻辑运算符。 您的Java操作集,{ ||! }, 足够了; 它对应于在“最小功能完整运算符集”一节中列出的集合{∨,¬}。

    所有真值表的集合表示所有可能的4个布尔值集合,它们可以是2个布尔值之间的操作结果。 因为布尔值有两个可能的值,所以有24或16个可能的真值表。

    A B | 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
    ----+------------------------------------------------
    T T | T  T  T  T  T  T  T  T  F  F  F  F  F  F  F  F
    T F | T  T  T  T  F  F  F  F  T  T  T  T  F  F  F  F
    F T | T  T  F  F  T  T  F  F  T  T  F  F  T  T  F  F 
    F F | T  F  T  F  T  F  T  F  T  F  T  F  T  F  T  F
    

    这里是真值表数字(0-15)的表格, ||! 产生它的组合和说明。

    Table  |  Operation(s)                    | Description
    -------+----------------------------------+-------------
      0    | A || !A                          | TRUE
      1    | A || B                           | OR
      2    | A || !B                          | B IMPLIES A
      3    | A                                | A
      4    | !A || B                          | A IMPLIES B
      5    | B                                | B
      6    | !(!A || !B) || !(A || B)         | XNOR (equals)
      7    | !(!A || !B)                      | AND
      8    | !A || !B                         | NAND
      9    | !(A || !B) || !(!A || B)         | XOR
     10    | !B                               | NOT B
     11    | !(!A || B)                       | NOT A IMPLIES B
     12    | !A                               | NOT A
     13    | !(A || !B)                       | NOT B IMPLIES A
     14    | !(A || B)                        | NOR
     15    | !(A || !A)                       | FALSE
    

    还有很多其他这样的功能完备集,包括一个元素集{NAND}和{NOR},它们在Java中没有相应的单一运算符。


    是。

    所有的逻辑门都可以由NOR门构成。

    由于NOR门可以由NOT和OR组成,因此结果如下。

    链接地址: http://www.djcxy.com/p/58901.html

    上一篇: and ! operators sufficient to make every possible logical expression?

    下一篇: PHP execution function when assigned to a variable