Ещё пример задания:
Сколько различных решений имеет логическое уравнение
X1 → X2 → X3 → X4 → X5 → X6 = 1
где x1, x2, …, x6 – логические переменные? В ответе не нужно перечислять все различные наборы значений переменных, при которых выполнено данное равенство. В качестве ответа нужно указать количество таких наборов.
Решение (вариант 1, табличный метод, динамическое программирование):
в левой части заданного уравнения стоят последовательно несколько операций импликации, скобок нет, поэтому порядок выполнения операций определяется приоритетом этих операций; в данном случае все операции имеют одинаковый приоритет
операции, имеющие одинаковый приоритет, выполняются слева направо, то есть первой выполняется импликация X1 → X2, а последней – последняя импликация
((((X1 → X2) → X3) → X4) → X5) → X6
каждая логическая переменная может принимать значение «истина» (1) или «ложь» (0)
для набора из 6 независимых логических переменных существует 26 =64 разных комбинаций значений этих переменных
рассмотрим первую импликацию, X1 → X2; она дает в трёх случаях 1, и в одном – 0:
X1 | X2 | X1 → X2 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
посмотрим, как меняется количество решений, если «подключить» следующую переменную;
исходя из этого, можно составить формулы для вычисления количества нулей и количества единиц для уравнения с переменными:
,
для одной переменной имеем 1 ноль и 1 единицу, поэтому начальные условия для расчёта:
составим таблицу, которую будем заполнять слева направо, вычисляя число нулей и единиц по приведенным выше формулам; в таблице показано, как строится следующий столбец таблицы для :
таким образом, ответ: 43 решения.
Решение (вариант 2, «с хвоста»):
те же рассуждения, что и в п. 1-4 решения по варианту 1
если X6 =1, то левая часть уравнения равна 1, то есть равенство выполняется; комбинаций с X6 =1 ровно половина от общего количества, то есть 32
теперь проверяем варианты с X6 =0; сразу получаем, что для выполнения заданного уравнения нужно, чтобы (X1 → X2 → X3 → X4 → X5)=0; иначе получим 1 → X6 = 1 →0 = 0
проверим отдельно случаи X5 =0 и X5 =1
пусть X6 = 0 и X5 =1; в этом случае никогда не будет выполнено условие
(X1 → X2 → X3 → X4 → X5)=0, решений нет
пусть X6 = X5 =0; в этом случае условие (X1 → X2 → X3 → X4 → X5)=0 выполняется только при (X1 → X2 → X3 → X4)=1; если X4 =1, это условие всегда верно, поэтому получаем еще 8 решений – 8 комбинаций, где X6 = X5 =0 и X4 =1 (1/8 всех комбинаций)
теперь рассмотрим случаи, когда X6 = X5 = X4 =0; рассуждая аналогично, находим, что условие (X1 → X2 → X3 → 0)=1 верно при (X1 → X2 → X3)=0, это сразу дает X3 =0 и
(X1 → X2)=1
при всех известных значениях остальных переменных (X6 = X5 = X4 = X3 =0) условие
(X1 → X2)=1 истинно в трёх случаях: (X1,X2) =(0,0) , (0,1) и (1,1), это дает еще 3 решения
таким образом, ответ: 32 + 8 + 3 = 43 решения.
Решение (вариант 3, приведение к базису «И-ИЛИ-НЕ», Е.Н. Смирнова):
те же рассуждения, что и в п. 1-4 решения по варианту 1
заменяем импликацию по формуле ; на первом шаге получаем
далее по той же формуле
инверсию в первом слагаемом раскроем по закону де Моргана ( ):
сделав те же операции с оставшейся скобкой, получаем
и, применяя ту же формулу еще раз, получим уравнение
при остальные 5 переменных можно выбирать любым способом, это дает 25 = 32 решения4444444
при и решений нет
при получаем 23 = 8 решений при (можно выбирать , и произвольно)
при сразу находим, что , это дает еще 3 решения, при которых истинно выражение
таким образом, ответ: 32 + 8 + 3 = 43 решения.