ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 450
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Ещё пример задания:
Р-20. Логическая функция F задаётся выражением
((x y) (y z)) ((x w) (w z)).
На рисунке приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
? | ? | ? | ? | F |
0 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | | 1 |
0 | 1 | 0 | | 1 |
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение (построение таблицы истинности для F = 1):
-
запишем выражение в более понятной форме: -
попробуем найти все сочетания переменных, при которых функция равна 1 (их должно быть не очень много) -
при x = 0 получаем ; импликация с нулём в левой части всегда истинна (из лжи следует всё, что угодно), поэтому -
пусть теперь ещё z = 0, тогда , что истинно при w = 1 и при любом y; -
пусть теперь x = 0 и z = 1, тогда , что истинно при y = 1 и при любом w; -
из 4 и 5 получаем такие строки в таблице истинности исходной функции:
x
y
z
w
F
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
-
остаётся рассмотреть случай, когда x = 1, при этом -
учитываем, что и ; получаем -
преобразуем импликацию , так что -
для y = 0 это выражение истинно при (w, z) = (0,0), (0,1) и (1,0), а для y = 1 – только при w = z = 1, это даёт ещё 4 строки в таблице истинности
x
y
z
w
F
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
-
итак, у нас есть 8 строк в таблице истинности, где функция равна 1:
x | y | z | w | F |
0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
попробуем сопоставить их с заданными в условии строками:
? | ? | ? | ? | F |
0 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | | 1 |
0 | 1 | 0 | | 1 |
-
замечаем, что есть одна характерная строка с тремя единицами; кроме того, поскольку все строки различны, в одной из пустых ячеек должен стоять 0, а во второй – 1 -
в полученной нами таблице видим единственную строку с тремя единицами, что сразу позволяет определить, что первый столбец – это x, который всегда равен 0:
x
y
z
w
F
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
-
теперь из оставшихся двух строк остаётся найти 2 строки, значения которых различаются только в одном столбце; под это условие подходит только пара двух верхних строк, они различаются в столбце y – из исходной таблицы видим, что это 4-й столбец -
также из исходной таблицы видим, что во втором столбце в этих двух строках единицы – это w, тогда третий столбец – это z -
Ответ: xwzy.
Решение (А.Н. Носкин, построение таблицы истинности для F = 1):
-
запишем выражение в более понятной форме: -
вынесем y за скобки: F = (y*(x+z) ≡ ((x→w)*(w→z)) -
F = 1, при 0=0 и 1=1. Тогда составим ТИ для левой части выражения равные 0 и 1.
y | x | z |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
y | x | z |
1 | 0 | 1 |
1 | 1 | 0 |
1 | 1 | 1 |
-
Объединим эти таблицы, подключим переменную w и уберем из таблицы строки, при которых F=0 после подключения переменной w.
y
x
z
w
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
-
Получилось 8 всевозможных решений. -
Обратим внимание, что по условию у нас нет повторяющихся строк, но в таблице есть строки с тремя одинаковыми ячейками, тогда можно ДОЗАПОЛНИТЬ таблицу истинности исходной функции (желтая заливка) в одну из них вставив 0, в другую 1.
?
?
?
?
F
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
-
Анализ строк таблицы истинности исходной функции показывает:
- строки, состоящей из четырех «1» нет, поэтому ее можно убрать (красная заливка);
- только одна строка имеет в ячейках три единицы и один «0». И в ТИ всех решений (желтая заливка) этот «0» будет соответствовать Х в ТИ исходной функции.
y | x | z | w |
0 | 0 | 0 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 |
-
Так как мы определили, что первый столбец соответствует Х и содержит только «0», то строки ТИ решений с «1» в столбце Х – удалим (синяя заливка)
y | x | z | w |
0 | 0 | 0 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 |
и получим ТИ меньшего размера.
y | x | z | w |
0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
-
Анализ столбцов ТИ исходной функции показывает, что одна «1» в третьем столбце соответствует Z, а в третьей строке ТИ исходной функции две неизвестные переменные противоположны «0» и «1», что соответствует W и Y, так как X и Z уже определены и равны «0» (зеленая заливка)
y | x | z | w |
0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
-
Ответ: xwzy.
Решение (построение таблицы с помощью программы, Б.С, Михлин)
print('x y z w') # заголовок таблицы
k = 0, 1 # k - кортежконстант (0 - False, 1 - True)
for x in k:
for y in k:
for z in k:
for w in k:
if (x and y or y and z) == ((not x or w) \
and (not w or z)):
# можнокороче:
# if ( x * y or y * z ) == ( x <= w)*( w <= z):
# '*' вместо ‘and’
print(x, y, z, w) # если F = 1