Булева логика и таблицы правды Объяснение - PullRequest
2 голосов
/ 12 февраля 2010

Мне нужно создать таблицу истинности, и мне действительно нужно найти ресурс, чтобы объяснить, как она работает. Я приведу пример проблемы. Я должен создать таблицу истинности на основе этого: A * (B + A B) = A B Таким образом, таблица истинности выглядит примерно так:
0 0
0 1
1 0
1 1 для A * (B + A B) = A B

Как мне вообще начать решать это? Есть ли хорошие ресурсы, которые дают хорошее объяснение того, что делать?

Хорошо. Итак, я сделал еще одну сложную задачу, которая включает НЕ. ! указывает не

! (A *! B +! A B) = A B +! (A + B)

Итак, я сделал C = A *! B D =! A * B тогда! (C + D) для левой стороны. Мой окончательный ответ для этой стороны

0 0 1  
0 1 0
1 0 0
0 0 1

Так что правая сторона это
C = A * B D = A + B, тогда C +! D чтобы это выглядело так

0 0 1
0 1 0
0 1 0
1 1 1

Я думаю, я понял? :)

1 Ответ

4 голосов
/ 12 февраля 2010

Редактировать: я добавил дополнительное объяснение, учитывая ваш комментарий (который сейчас удален).

A и B - две логические переменные. Например, в программе A может быть firstTestOK, а B может быть secondTestOK. Каждый из A и B может быть либо true (1), либо false (0).

A + B означает A или B, что верно, если A или B истинно. A * B означает, что A и B истинны, только если истинны как A, так и B.

Все комбинации для A, B:

  1. A ложно и B ложно
  2. A ложно, а B верно
  3. A верно, а B ложно
  4. A верно, а B верно

Это можно записать более компактно в виде таблицы истинности следующим образом:

A B
0 0
0 1
1 0
1 1

Вас попросили показать, что A * (B + A B) - это то же самое, что A B. Итак, для каждой комбинации мы работаем с левой стороны, которая является A * (B + A B), и с правой стороны, которая является A B:

A B C=A*B D=B+C A*D  = A*B
0 0  0     0     0      0
0 1  0     1     0      0  
1 0  0     0     0      0
1 1  1     1     1      1

Итак, глядя на все комбинации в двух последних столбцах, мы видим, что результаты одинаковы, поэтому A D = A (B + A B) равно A B.

Поскольку левая сторона немного сложна, я делал это поэтапно, разбивая ее на части, вводя C и D.

...