2010
и в другом варианте:
Это задание было включено в демоверсию 2011 года как B10
((J → K) → (M ∧ N ∧ L)) ∧ ((J ∧ ¬K) → ¬(M ∧ N ∧ L)) ∧ (M → J) = 1
(((J -> K) -> (M & N & L)) & ((J & ~K) -> ~(M & N & L))) & (M -> J)
т.к. у нас конъюнкция, то получаем систему
(J → K) → (M ∧ N ∧ L) = 1
(J ∧ ¬K) → ¬(M ∧ N ∧ L) = 1
(M → J) = 1
при этом
J ∧ ¬K = ¬(¬J ∨ K) = ¬(J → K)
т.е. второе уравнение выглядит так:
¬(J → K) → ¬(M ∧ N ∧ L) = 1
(M ∧ N ∧ L) → (J → K) = 1
с учетом первого уравнения, получается
(M ∧ N ∧ L) ≡ (J → K) = 1
(M → J) = 1
то есть в первом уравнении скобки либо обе истинны, либо обе ложны
далее два варианта рассуждений
Вариант 1.
рассмотрим случай, когда обе скобки истинны в системе со вторым уравн.
J → K = 1
M ∧ N ∧ L = 1
M → J = 1
отсюда L = M = N = 1, в частности M = 1
тогда раз M = 1 и M → J = 1, то J=1
и раз J = 1 и J → K = 1 то K = 1
т.е. все пять переменных жестко определены, решение одно
11111
и рассмотрим когда обе скобки ложны
J → K = 0 J = 1 K = 0
M ∧ N ∧ L = 0 все варианты кроме L=M=N=1
т.е. это комбинации вида 10*** при этом не должно быть
10111
т.е. 8 -1 = 7 вариантов
итого с учетом первого (11111) 8 решений
Вариант 2.
Рассмотрим два случая первого уравнения, потом соединим со вторым
M /\ N /\ L = 1
J → K = 1
или
M /\ N /\ L = 0
J → K = 0
первый случай.
J K L M N
х x 1 1 1
0 0 x x x
0 1 x x x
1 1 x x x
то есть три решения
второй случай.
J K L M N
х x 1 1 1 - все кроме этого, то есть 32 - 4, то есть годятся 28 комбинаций
1 0 x x x - 8 комбинаций, значит отсюда нужно исключить xx111, получается 7 решений
как соотносятся решения первого и второго случая? очевидно, что они не пересекаются
поэтому берем сумму, 10 решений
как выглядят решения второго уравнения?
J K L M N
0 x x 0 x
1 x x 0 x
1 x x 1 x
их осталось наложить на те 10
0 0 1 1 1 не подходит для второго
0 1 1 1 1 не подходит для второго
1 0 0 0 0
1 0 0 0 1
1 0 0 1 0
1 0 0 1 1
1 0 1 0 0
1 0 1 0 1
1 0 1 1 0
1 1 1 1 1
Ответ: 8 решений
Программа на Бейсике, перечисляющая эти значения
OPEN "out.txt" FOR OUTPUT AS #3 ist = 0CLSPRINT #3, "J K L M N"FOR j = 0 TO 1FOR k = 0 TO 1 FOR l = 0 TO 1 FOR m = 0 TO 1 FOR n = 0 TO 1 a = -j: b = -k: c = -l: d = -m: e = -n formula1 = NOT (NOT (a) OR b) OR (d AND e AND c) formula2 = NOT (a AND NOT b) OR NOT (d AND e AND c) formula3 = NOT d OR a formula = formula1 AND formula2 AND formula3 IF formula > 1 THEN formula = 1 ist = ist + formula PRINT #3, j; " "; k; " "; l; " "; m; " "; n, "|"; formula; "|" NEXTNEXTNEXTNEXTNEXTPRINT #3, "Istinno: "; ABS(ist) CLOSE #3
Вывод этой программы:
J K L M N
0 0 0 0 0 | 0 |
0 0 0 0 1 | 0 |
0 0 0 1 0 | 0 |
0 0 0 1 1 | 0 |
0 0 1 0 0 | 0 |
0 0 1 0 1 | 0 |
0 0 1 1 0 | 0 |
0 0 1 1 1 | 0 |
0 1 0 0 0 | 0 |
0 1 0 0 1 | 0 |
0 1 0 1 0 | 0 |
0 1 0 1 1 | 0 |
0 1 1 0 0 | 0 |
0 1 1 0 1 | 0 |
0 1 1 1 0 | 0 |
0 1 1 1 1 | 0 |
1 0 0 0 0 |-1 |
1 0 0 0 1 |-1 |
1 0 0 1 0 |-1 |
1 0 0 1 1 |-1 |
1 0 1 0 0 |-1 |
1 0 1 0 1 |-1 |
1 0 1 1 0 |-1 |
1 0 1 1 1 | 0 |
1 1 0 0 0 | 0 |
1 1 0 0 1 | 0 |
1 1 0 1 0 | 0 |
1 1 0 1 1 | 0 |
1 1 1 0 0 | 0 |
1 1 1 0 1 | 0 |
1 1 1 1 0 | 0 |
1 1 1 1 1 |-1 |
Istinno: 8