Ответ «нет»:
Рассмотрим A || B && C || D
, в котором есть таблица истинности:
A | B | C | D |
0 | 0 | 0 | 0 | 0
0 | 0 | 0 | 1 | 0
0 | 0 | 1 | 0 | 0
0 | 0 | 1 | 1 | 0
0 | 1 | 0 | 0 | 0
0 | 1 | 0 | 1 | 1
0 | 1 | 1 | 0 | 1
0 | 1 | 1 | 1 | 1
1 | 0 | 0 | 0 | 0
1 | 0 | 0 | 1 | 1
1 | 0 | 1 | 0 | 1
1 | 0 | 1 | 1 | 1
1 | 1 | 0 | 0 | 0
1 | 1 | 0 | 1 | 1
1 | 1 | 1 | 0 | 1
1 | 1 | 1 | 1 | 1
Если бы можно было выполнить последовательную оценку, то должно быть последнее выражение, которое быбыть одним из двух случаев:
Случай 1:
X || Y
такой, что Y
является одним из A,B,C,D
, а X является любым последовательным логическим выражением.
Теперь, поскольку в A,B,C,D
нет переменной, где все выражение истинно, когда эта переменная истинна, ни одно из:
X || A
X || B
X || C
X || D
не может быть последней операцией в выражении (для любого X).
Случай 2:
X && Y
: такой, что Y
является одним из A,B,C,D
, а X является любым последовательным логическим выражением.
Теперь, поскольку в A,B,C,D
нет переменной, где все выражение ложно, когда эта переменная ложна, ни одно из:
X && A
X && B
X && C
X && D
не может быть последней операцией в выражении (для любого X).
Поэтому вы не можете написать (A || B) && (C || D)
таким образом.
Причина, по которой вы можете сделать это для некоторых выражений, таких как: A && ( B || C)
становится C || B && A
, заключается в том, чтовыражение может быть построено рекурсивно из выражений, которые имеют одно из двух указанных выше свойств:
IE.
Таблица истинности для A && ( B || C)
:
A | B | C |
0 | 0 | 0 | 0
0 | 0 | 1 | 0
0 | 1 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 0 | 0
1 | 0 | 1 | 1
1 | 1 | 0 | 1
1 | 1 | 1 | 1
, котораямы можем быстро увидеть, что имеет свойство ложно всякий раз, когда A равно 0. Поэтому наше выражение может быть X && A
.
Затем мы вынимаем A из таблицы истинности и смотрим только на те строки, где A равно 1это оригинал:
B | C
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1
, который обладает свойством True, когда B равен 1 (или C, мы можем выбрать здесь).Таким образом, мы можем записать выражение как
X || B
, и все выражение станет X || B && A
Затем мы снова уменьшим таблицу до части, где B было 0, и получим:
C
0 | 0
1 | 1
X - это просто C. Итак, окончательное выражение - C || B && A