C ++实现(XOR,IMPLIES,IFF)

时间:2013-04-21 14:08:45

标签: c++ boolean-logic xor

真相表:

点----------- ----------- Q XOR ----------- IMPLIES ---- ------- IFF

Ť----------- --------------Ť---------------˚FŤ--- -------------- T

Ť-----------˚F--------------Ť--------------- F --- --------------˚F

˚F-----------Ť--------------Ť---------------Ť--- --------------˚F

˚F----------- --------------˚F---------------˚FŤ--- --------------Ť

我想知道如何仅使用和,或者运算符来计算XOR,IMPLIES,IFF。比方说,XOR是 - “(p || Q)&&!(a&& b)”。

2 个答案:

答案 0 :(得分:2)

好吧,解决这个问题的一般方法。

所以,你有一个真值表,如下:

P   Q   f(P, Q)
0   0   0
0   1   1
1   0   1
1   1   1

现在,您可以首先使用1转录每一行:

//Row 2            3            4
      (!P && Q) || (P && !Q) || (P && Q)

现在你有了析取正常形式的表达式,你需要简化它。我们在学校学到了一个系统的简化过程,但我并不记得它(也许你可以尝试在互联网上搜索类似DNF表达式的简化)。您也可以尝试使用逻辑公理,例如De Morgan's laws,但这不是完全系统化的。

答案 1 :(得分:0)

  • XOR:(p || q) && !(p && q)p ^ qp != q
  • IMPLIES:(!p || q)
  • IFF:反转XOR?