Логическая функция F задаётся выражением
Ниже представлен фрагмент таблицы истинности функции содержащий неповторяющиеся строки, при которых фукнция
истинна.
??? | ??? | ??? | ??? | F |
0 | 0 | 1 | ||
0 | 0 | 0 | 1 | |
0 | 1 | |||
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z. В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Программа:
print("w x y z")
for w in range(0, 2):
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
if (((x <= y) == (y <= z)) and (y or w)) == True:
print(w, x, y, z)
После запуска программы получаем результат:
w x y z
0 0 1 1
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 1
1 1 1 1
Для начала, можем заметить, что строка с 4 единицами нам не подходит. По строчке с 3 нулями из таблицы в задании можем понять, что 3 столбец это w. Первая строка из полученной таблицы это первая строка из задания. Следовательно, мы теперь знаем, что x это первый столбец, поскольку в этой строке только w и x являются нулями. В оставшейся строке мы знаем, что 4 столбец равен 0, а это значит, что нам не подходят строки где y и z равны 1, получается, мы исключаем вторую и предпоследнюю строчку из таблицы, написанной программой. В итоге остается одна строка в нашей таблице и по ней определяем оставшиеся места для наших букв.