булева логика — реализация C ++ (XOR, IMPLIES, IFF)

Таблица правды:

P ———— Q ———— ———— XOR ПОДРАЗУМЕВАЕТ ———— IFF

Т ———— T ————— T ————— F —— ———— Т

Т ———— F ————— T ————— F —— ———— F

F ———— T ————— T ————— T —— ———— F

F ———— ————— F F ————— T —— ———— Т

Я хочу знать, как рассчитать XOR, IMPLIES, IFF, используя только и, или, не операторы. Скажем, например, XOR is — «(p || Q) && ! (а && б) «.

1

Решение

Хорошо, общий способ решить это.

Итак, у вас есть таблица истинности, например:

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). Вы также можете попытаться сделать это, используя логические аксиомы, такие как Законы де Моргана, но это не было бы полностью систематическим.

2

Другие решения

  • XOR: (p || q) && !(p && q) или же p ^ q или же p != q
  • ПОДРАЗУМЕВАЕТ: (!p || q)
  • IFF: обратный XOR?
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector