Консультация № 192277
01.01.2018, 19:12
0.00 руб.
0 1 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Сколько различных решений имеет система уравнений
(X1∨X2)∧(¬X3 ∨¬X4) = 0
(X3 ∨X4)∧(¬X5 ∨¬X6) = 0
(X5 ∨X6)∧(¬X7 ∨¬X8) = 0
(X7 ∨X8)∧(¬X9 ∨¬X10) = 0
(X9 ∨X10)∧(¬X11∨¬X12) = 0

где x1, x2, …, x10 – логические переменные? В ответе не нужно перечислять все различные наборы значений переменных, при которых выполнено данное равенство. В качестве ответа нужно указать количество таких наборов.

Обсуждение

давно
Старший Модератор
312929
1973
06.01.2018, 18:59
общий
это ответ
Здравствуйте, yak_2010!

Первое уравнение содержит функцию (x[sub]1[/sub][$8744$]x[sub]2[/sub])[$8743$]([$172$]x[sub]3[/sub][$8744$][$172$]x[sub]4[/sub]) четырёх переменных (x[sub]1[/sub], x[sub]2[/sub], x[sub]3[/sub] и x[sub]4[/sub]). Чтобы определить, при каких значениях этих переменных функция равна 0, составим таблицу значений функции (добавиви в неё для облегчения расчётов значения промежуточных выражений x[sub]1[/sub][$8744$]x[sub]2[/sub] и [$172$]x[sub]3[/sub][$8744$][$172$]x[sub]4[/sub]):

Из таблицы видно, что функция принимает нулевое значение на наборах 0000, 0001, 0010, 0011, 0111, 1011 и 1111. Поскольку функция не зависит от остальных переменных (x[sub]5[/sub] ... x[sub]12[/sub]), то каждый из этих наборов представляет собой на самом деле несколько наборов. Например, 0000 - это наборы 000000000000, 000000000001, 000000000010,... 0000011111110, 000011111111, всего 256 наборов, в которых переменные x[sub]5[/sub]...x[sub]12[/sub] принимают все возможные значения.
Для упрощения обычно используют сокращённую запись, в которой вместо двух наборов, отличающихся только значением одной переменной (0 или 1), используют один, в котором эта переменная имеет специальное значение x (означающее "0 или 1"). То есть, вместо 000000000000 и 000000000001 можно записать 00000000000x, вместо 00000000000x и 00000000001x - 0000000000xx и т.д.
Соответственно, найденные семь наборов запишутся как 0000xxxxxxxx, 0001xxxxxxxx, 0010xxxxxxxx, 0011xxxxxxxx, 0111xxxxxxxx, 1011xxxxxxxx и 1111xxxxxxxx. Если же объединить первые четыре набора (они отличаются только значением переменных x[sub]3[/sub] и x[sub]4[/sub]) и последние два (отличающиеся значением переменной x[sub]2[/sub]), то решение примет вид {00xxxxxxxxxx, 0111xxxxxxxx, 1x11xxxxxxxx}.
Определить количество наборов при такой форме записи решения очень просто: каждый компонент задаёт 2[sup]k[/sup] наборов, где k - число значений x в этом компоненте. То есть в данном случае 00xxxxxxxxxx задаёт 2[sup]10[/sup] = 1024 набора, 0111xxxxxxxx - 2[sup]8[/sup] = 256 и 1x11xxxxxxxx 2[sup]9[/sup] = 512, а всего 1024 + 256 + 512 = 1768 наборов, удовлетворяющих первому уравнению.

Можно заметить, что второе уравнение отличается от первого только используемыми переменными (x[sub]3[/sub], x[sub]4[/sub], x[sub]5[/sub] и x[sub]6[/sub] вместо x[sub]1[/sub], x[sub]2[/sub], x[sub]3[/sub] и x[sub]4[/sub] соответственно, то есть номера переменных отличаются на 2). Следовательно, множество наборов переменных, задающее решение второго уравнения, можно получить путём сдвига всех значений из предыдущего решения {00xxxxxxxxxx, 0111xxxxxxxx, 1x11xxxxxxxx} вправо на 2: {xx00xxxxxxxx, xx0111xxxxxx, xx1x11xxxxxx} - также 1768 наборов.
Решение, удовлетворяющее обоим уравнением, является пересечением этих двух решений. Поскольку каждая логическая функция может принимать некоторое значение на одном из следующих множеств значений переменной: {0}, {1}, {0,1} (которым соответствуют 0, 1 и x в соращённой форме записи), то из стандартных правил пересечения множеств ({0}[$8745$]{0} = {0}[$8745$]{0,1} = 0, {1}[$8745$]{1} = {1}[$8745$]{0,1} = 1, {0,1}[$8745$]{0,1} = {0,1}, {0}[$8745$]{1} = [$8709$] - пустое множество) следует правило выполнения операции "пересечения" над значениями 0, 1 и x:

(знак "-" означает, что пересечения нет). В случае нескольких переменных операция "пересечения" выполняется "поразрядно" - над каждой из переменных.
В данном случае пересечением двух наборов-решений будет {00xxxxxxxxxx, 0111xxxxxxxx, 1x11xxxxxxxx}[$8745$]{xx00xxxxxxxx, xx0111xxxxxx, xx1x11xxxxxx} = {00xxxxxxxxxx[$8745$]xx00xxxxxxxx, 00xxxxxxxxxx[$8745$]xx0111xxxxxx, 00xxxxxxxxxx[$8745$]xx1x11xxxxxx, 0111xxxxxxxx[$8745$]xx00xxxxxxxx, 0111xxxxxxxx[$8745$]xx0111xxxxxx, 0111xxxxxxxx[$8745$]xx1x11xxxxxx, 1x11xxxxxxxx[$8745$]xx00xxxxxxxx, 1x11xxxxxxxx[$8745$]xx0111xxxxxx, 1x11xxxxxxxx[$8745$]xx1x11xxxxxx} = {0000xxxxxxxx, 00011xxxxxxx, 001x11xxxxxx, [$8709$], [$8709$], 011111xxxxxx, [$8709$], [$8709$], 1x1111xxxxxx} = {0000xxxxxxxx, 00011xxxxxxx, 001x11xxxxxx, 011111xxxxxx, 1x1111xxxxxx} - это решение содержит 256+128+128+64+128=704 набора.

Аналогично третье уравнение отличается от второго лишь используемыми переменными (x[sub]5[/sub], x[sub]6[/sub], x[sub]7[/sub] и x[sub]8[/sub] вместо x[sub]3[/sub], x[sub]4[/sub], x[sub]5[/sub] и x[sub]6[/sub] соответственно). Поэтому множество наборов значений переменных, являющихся его решением, можно записать как {xxxx00xxxxxx, xxxx0111xxxx, xxxx1x11xxxx}, а его пересечением с уже найденным решением первых двух уравнений будет {0000xxxxxxxx, 00011xxxxxxx, 001x11xxxxxx, 011111xxxxxx, 1x1111xxxxxx}[$8745$]{xxxx00xxxxxx, xxxx0111xxxx, xxxx1x11xxxx} = {0000xxxxxxxx[$8745$]xxxx00xxxxxx, 0000xxxxxxxx[$8745$]xxxx0111xxxx, 0000xxxxxxxx[$8745$]xxxx1x11xxxx, 00011xxxxxxx[$8745$]xxxx00xxxxxx, 00011xxxxxxx[$8745$]xxxx0111xxxx, 00011xxxxxxx[$8745$]xxxx1x11xxxx, 001x11xxxxxx[$8745$]xxxx00xxxxxx, 001x11xxxxxx[$8745$]xxxx0111xxxx, 001x11xxxxxx[$8745$]xxxx1x11xxxx, 011111xxxxxx[$8745$]xxxx00xxxxxx, 011111xxxxxx[$8745$]xxxx0111xxxx, 011111xxxxxx[$8745$]xxxx1x11xxxx, 1x1111xxxxxx[$8745$]xxxx00xxxxxx, 1x1111xxxxxx[$8745$]xxxx0111xxxx, 1x1111xxxxxx[$8745$]xxxx1x11xxxx} = {000000xxxxxx, 00000111xxxx, 00001x11xxxx, [$8709$], [$8709$], 00011x11xxxx, [$8709$], [$8709$], 001x1111xxxx, [$8709$], [$8709$], 01111111xxxx, [$8709$], [$8709$], 1x111111xxxx} = {000000xxxxxx, 00000111xxxx, 00001x11xxxx, 00011x11xxxx, 001x1111xxxx, 01111111xxxx, 1x111111xxxx} = {000000xxxxxx, 00000111xxxx, 000x1x11xxxx, 001x1111xxxx, 01111111xxxx, 1x111111xxxx} - всего 64+16+64+32+16+32=224 набора.

Четвёртому уравнению (также отличающемуся от третьего лишь используемыми переменными) соответствует решение {xxxxxx00xxxx, xxxxxx0111xx, xxxxxx1x11xx}, пересечением которого с предыдущим решением будет {000000xxxxxx, 00000111xxxx, 000x1x11xxxx, 001x1111xxxx, 01111111xxxx, 1x111111xxxx}[$8745$]{xxxxxx00xxxx, xxxxxx0111xx, xxxxxx1x11xx} = {000000xxxxxx[$8745$]xxxxxx00xxxx, 000000xxxxxx[$8745$]xxxxxx0111xx, 000000xxxxxx[$8745$]xxxxxx1x11xx, 00000111xxxx[$8745$]xxxxxx00xxxx, 00000111xxxx[$8745$]xxxxxx0111xx, 00000111xxxx[$8745$]xxxxxx1x11xx, 000x1x11xxxx[$8745$]xxxxxx00xxxx, 000x1x11xxxx[$8745$]xxxxxx0111xx, 000x1x11xxxx[$8745$]xxxxxx1x11xx, 001x1111xxxx[$8745$]xxxxxx00xxxx, 001x1111xxxx[$8745$]xxxxxx0111xx, 001x1111xxxx[$8745$]xxxxxx1x11xx, 011x1111xxxx[$8745$]xxxxxx00xxxx, 011x1111xxxx[$8745$]xxxxxx0111xx, 011x1111xxxx[$8745$]xxxxxx1x11xx, 1x111111xxxx[$8745$]xxxxxx00xxxx, 1x111111xxxx[$8745$]xxxxxx0111xx, 1x111111xxxx[$8745$]xxxxxx1x11xx} = {00000000xxxx, 0000000111xx, 0000001x11xx, [$8709$], [$8709$], 0000011111xx, [$8709$], [$8709$], 000x1x1111xx, [$8709$], [$8709$], 001x111111xx, [$8709$], [$8709$], 011x111111xx, [$8709$], [$8709$], 1x11111111xx} = {00000000xxxx, 0000000111xx, 0000001x11xx, 0000011111xx, 000x1x1111xx, 001x111111xx, 011x111111xx, 1x11111111xx} = {00000000xxxx, 0000000111xx, 0000001x11xx, 0000011111xx, 000x1x1111xx, 0x1x111111xx, 1x11111111xx} - всего 16+4+8+4+16+16+8=72 набора.

Наконец решением последнего уравнения будет {xxxxxxxx00xx, xxxxxxxx0111, xxxxxxxx1x11}, и его пересечение с решением остальных четырёх уравнений {00000000xxxx, 0000000111xx, 0000001x11xx, 0000011111xx, 000x1x1111xx, 0x1x111111xx, 1x11111111xx}[$8745$]{xxxxxxxx00xx, xxxxxxxx0111, xxxxxxxx1x11} = {00000000xxxx[$8745$]xxxxxxxx00xx, 00000000xxxx[$8745$]xxxxxxxx0111, 00000000xxxx[$8745$]xxxxxxxx1x11, 0000000111xx[$8745$]xxxxxxxx00xx, 0000000111xx[$8745$]xxxxxxxx0111, 0000000111xx[$8745$]xxxxxxxx1x11, 0000001x11xx[$8745$]xxxxxxxx00xx, 0000001x11xx[$8745$]xxxxxxxx0111, 0000001x11xx[$8745$]xxxxxxxx1x11, 0000011111xx[$8745$]xxxxxxxx00xx, 0000011111xx[$8745$]xxxxxxxx0111, 0000011111xx[$8745$]xxxxxxxx1x11, 000x1x1111xx[$8745$]xxxxxxxx00xx, 000x1x1111xx[$8745$]xxxxxxxx0111, 000x1x1111xx[$8745$]xxxxxxxx1x11, 0x1x111111xx[$8745$]xxxxxxxx00xx, 0x1x111111xx[$8745$]xxxxxxxx0111, 0x1x111111xx[$8745$]xxxxxxxx1x11, 1x11111111xx[$8745$]xxxxxxxx00xx, 1x11111111xx[$8745$]xxxxxxxx0111, 1x11111111xx[$8745$]xxxxxxxx1x11} = {0000000000xx, 000000000111, 000000001x11, [$8709$], [$8709$], 000000011111, [$8709$], [$8709$], 0000001x1111, [$8709$], [$8709$], 000001111111, [$8709$], [$8709$], 000x1x111111, [$8709$], [$8709$], 0x1x11111111, [$8709$], [$8709$], 1x1111111111} = {0000000000xx, 000000000111, 000000001x11, 000000011111, 0000001x1111, 000001111111, 000x1x111111, 0x1x11111111, 1x1111111111} будет решением задачи. Оно задаёт 4+1+2+1+2+1+4+4+2=21 набор.
Форма ответа