Как эти булевы выражения (таблицы истинности) эквивалентны?

Я пытаюсь лучше понять булеву эквивалентность, но этот пример немного застрял.

Я имею в виду этот сайт: http://chortle.ccsu.edu/java5/Notes/chap40B/ch40B_9.html

Это имеет смысл, но не одновременно... он говорит, что они эквивалентны, но значения истина / ложь не складываются / не выстраиваются таким образом, что их эквивалентность эквивалентна, как показано в таблице. являются. Может ли кто-нибудь объяснить это мне?

! (A && B) <- первое выражение

(C || D) <- второе выражение

Последние столбцы относятся к эквивалентности двух выражений, которые да, они эквивалентны в соответствии с таблицей. Однако я просто не понимаю, как эти два выражения эквивалентны. Если A = F, B = F ->T, разве C = F, D = F ->T тоже?

A   B     C   D
--------------------
F   F     T   T   T
F   T     T   F   T
T   F     F   T   T
T   T     F   F   F

2 ответа

Решение

Вы вводите себя в заблуждение, пытаясь свести его от фактического выражения к однобуквенным переменным. При ссылке на фактическую ссылку может показаться, что используемые вами переменные могут быть сопоставлены с исходными выражениями следующим образом:

A = speed > 2000
B = memory > 512
C = speed <= 2000
D = memory <= 512

Если вы посмотрите на это, C равняется !A а также D равняется !B, Итак, выражение (C || D) эффективно !((!A) || (!B)), По закону де Моргана, это то же самое, что !(A && B),

Эта таблица объясняет, что!(A && B) эквивалентно!A ||!B. Столбцы C и D определяются как C =!A и D =!B. Последний столбец C || D

Так что A = F, B = F, безусловно, подразумевает!(A && B). В этом случае C = D = T, а также и C || D = T.

Другие вопросы по тегам