2.01 Полностью заполненные фрагменты таблицы истинности
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((not x) <= (not y)) and (not (z <= y)): # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((not x) <= (not y)) and (not (z <= y)): # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Т.к. есть только один столбец с двумя единицами – переменная , и один столбец с двумя нулями –
переменная
, они стоят на первом и третьем местах соответственно, и по остаточному принципу на
втором месте стоит переменная
.
Аналитическое решение:
Конъюнкция истинна, когда обе скодки будут истинны. Во второй скобке представлено отрицание, а
это означает, что Для этого
Тогда в первой скобке, так как
переменная
может быть равна как
, так и
. Из всего этого мы получаем, что
занимает второй
столбец,
занимает третий, а
занимает первый.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (((x <= y) <= (not z)) <= (not y)) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (((x <= y) <= (not z)) <= (not y)) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Т.к. есть только один столбец с двумя единицами – переменная , и один столбец с двумя нулями –
переменная
, они стоят на первом и третьем местах соответственно, и по остаточному принципу на
втором месте стоит переменная
.
Аналитическое решение:
Для переменная
должен быть равна
, чтобы её отрицание в итоге давало
.
Получается, что
занимает первый столбец. Так как
то импликация
В таком
случае
(чтобы
Тогда
занимает третий столбец. Для переменной
остаётся второй столбец.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z, w (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 16 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z w") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z, w for x in a: for y in a: for z in a: for w in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x and y) or (y == z) or w) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z, w)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z, w можно также организовать с помощью функции product из модуля itertools. Она генерирует все 16 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z w") # Генерируем все возможные комбинации из 0 и 1 длины 4 (для x,y,z,w) for x, y, z, w in product([0, 1], repeat = 4): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x and y) or (y == z) or w) == False: # Выводим подходящую комбинацию print(x, y, z, w)
После запуска программы получаем результат:
w x y z
0 0 0 1
0 0 1 0
0 1 0 1
Столбец w подставим в 3-ий столбец. Cтолбец z подставим в 1-ый столбец. Обратим внимание на 1-ую строку из условия это 3-ая строка из вывода программы, в ней переменная z и x равны 1, значит, второй столбец это x. Методом исключения в 4-ый столбец записываем y.
Аналитическое решение:
1. Заметим, что для переменная
должна принимать значение
. Следовательно,
данная переменная занимает третий столбец (так как только в нём во всех ячейках находятся
нули).
2. Эквивалентность также должна быть ложной, чтобы функция была ложной. Для этого
переменные
должны принимать разные значения. Эта пара переменных не может занимать первый
и второй, второй и четвёртый столбцы (так как есть строчки, в которых эти переменные имеют
одинаковые значения). Следовательно, переменные занимают первый и четвёртый столбцы. Тогда под
переменную
остаётся второй столбец.
3. Рассмотрим первую строчку. В ней Конъюнкция должна быть ложной, но так как
то
Получается, что
занимает четвёртый столбец. Тогда
занимает первый
столбец.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((y or x) <= (x == z)) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((y or x) <= (x == z)) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
x y z
0 1 1
1 0 0
1 1 0
Первая строка - лишняя, так как третий столбец из условия полностью состоит из нулей и только в столбце z есть два нуля, собственно, подставляем z cтолбец в 3-ий столбец. Две единицы есть в x столбце, а одна единица в y столбце. Подставляем x во второй столбец, а y - в первый.
Аналитическое решение:
1. Для ложности данной функции импликация должна быть ложной. А это означает, что, что
дизъюнкция должна быть истинной, а эквивалентность ложной. Эквивалентность ложна тогда, когда
переменные имеют разные значения. Заметим, что эти переменные не могут занимать первый
и второй, первый и третий столбцы (так как в ячейках строк есть одинаковые значения).
Следовательно, данные переменные занимают второй и третий столбец, а переменая
занимает
первый.
2. Рассмотрим первую строку. В ней Однако дизъюнкция должна быть истинной, а это
означает, что
Поймём, что
занимает второй столбец. Следовательно,
занимает третий
столбец.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z, w (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 16 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z w") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z, w for x in a: for y in a: for z in a: for w in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if not y and (w <= x) and z: # Если условие выполнено, выводим текущую комбинацию print(x, y, z, w)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z, w можно также организовать с помощью функции product из модуля itertools. Она генерирует все 16 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z w") # Генерируем все возможные комбинации из 0 и 1 длины 4 (для x,y,z,w) for x, y, z, w in product([0, 1], repeat = 4): # Проверяем, что логическое выражение с текущим набором переменных дает истину if not y and (w <= x) and z: # Выводим подходящую комбинацию print(x, y, z, w)
После запуска программы получаем результат:
w x y z
0 0 0 1
0 1 0 1
1 1 0 1
Первый столбец полностью состоит из нулей, в него подставим столбец y. Третий столбец полностью состоит из единиц, в него подставим столбец z. Две единицы есть только в столбце x, его подставим во 2-ой столбец. В 4-ый столбец запишем столбец w.
Аналитическое решение:
Функция истинна тогда, когда
Следовательно, переменная
занимает третий
столбец, а переменная
занимает первый столбец. При этом импликация должна быть истинной. Из
второй строки видно, что
занимает четвёртый столбец, а переменная
второй (так как в противном
случае импликация будет ложной).
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((not x and y) == z) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((not x and y) == z) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
x y z
0 0 1
0 1 0
1 0 1
1 1 1
Последняя строчка в выводе программы лишняя, так как в условии нет ни одной строчки, которая состоит только из единиц. Только в столбце z есть две единицы, значит, записываем его в третий столбец. Обратим внимание на третью строчку из условия это третья строчка из вывода, z и x равны 1, значит, первый столбец принадлежит x, а второй - y.
Аналитическое решение:
1. Рассмотрим третью строчку. Предположим, что занимает второй столбец. Тогда
эквивалентность будет истинной. Если же
занимает второй столбец, то эквивалентность тоже будет
истинной. Следовательно, второй столбец занимает переменная
2. Рассмотрим первую строчку. В ней то есть конъюнкция будет ложной. Тогда
должен
принимать значение
. Это означает, что
занимает третий столбец, а переменная
занимает
первый.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции .
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (x and (y == (y or z))): # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (x and (y == (y or z))): # Выводим подходящую комбинацию print(x, y, z)
Вывод программы:
x y z
1 0 0
1 1 0
1 1 1
Отсюда видно, что – второй столбец,
– третий, а
– первый.
Аналитическое решение:
1. Мы можем однозначно определить, что для истинности функции
. Следовательно, переменная
занимает
второй столбец.
2. Рассмотрим вторую строчку фрагмента таблицы истинности. Предположим, что – это третий столбец, а
— первый. Но в таком случае импликация будет истинна, эквивалентность ложна, а значит, функция
ложна. Покажем, что
— это первый столбец, а
— третий столбец. Тогда импликация будет истинна,
эквивалентность истинна, а значит, и конъюнкция будет истинна. Следовательно, переменные расположены в порядке
.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (not(x) or y or not(z)) and (not(x) == (not(y) or z)): # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (not(x) or y or not(z)) and (not(x) == (not(y) or z)): # Выводим подходящую комбинацию print(x, y, z)
Вывод программы:
x y z
0 0 0
0 0 1
0 1 1
1 1 0
Сразу можно из вывода убрать первую строку, так как в условии у нас нет строк, где стоят все нули.
Также очевидно, что первый столбец в таблице – это , так как только он имеет одну единицу.
В условии у нас есть единственная строка с двумя нулями. В полученной таблице такая строка тоже
присутствует и единица стоит в ней у переменной . Значит,
принадлежит второму столбцу, а
–
третьему.
Получаем ответ: .
Аналитическое решение:
1. Конъюнкция истинна, когда обе скобки будут истинны. Обратим внимание на вторую и третью строчки. Они
примечательны тем, что в них тогда, когда две переменные принимают значение
, а третья переменная значение
. Заметим, что если
то
так как первая скобка будет ложной. Используя вторую и третью
строчки, мы поймём, что
не может занимать первый и второй столбец, следовательно,
занимает третий
столбец.
2. Обратимся к первой строчке. В ней Следовательно,
В таком случае
для истинности
эквивалентности. Значит,
занимает первый столбец, а
занимает второй.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x == ((not y) or z)) <= (x and y)) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x == ((not y) or z)) <= (x and y)) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Для начала заметим, что только в одном столбце есть 2 единицы - это переменная , значит она точно стоит на первом
месте. В строке, где
, переменная
, а
. Значит, переменная
стоит на втором месте, а
– на
третьем.
Аналитическое решение:
1. Импликация будет ложна, когда первая скобка будет истинна, а вторая будет ложна. Рассмотрим третью строчку.
Предположим, что занимает третий столбец. Но тогда первая скобка будет ложной, а значит, импликация будет
истинной. Если
занимает третий столбец, то аналогично первая скобка будет ложной, и, как следствие, импликация
будет истинной. Значит, можно убедиться в том, что
занимает третий столбец в данном фрагменте таблицы
истинности.
2. Обратимся ко второй строке. Рассмотрим два варианта: когда и вариант, когда
Во
втором случае первая скобка будет ложной, а значит, импликация будет истинной. Из этого можно сделать вывод, что
подойдёт первый вариант,
будет занимать первый столбец, а
занимать второй.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x or y) and (z <= ((not x) and y))) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x or y) and (z <= ((not x) and y))) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Для начала заметим, что в условии не дано ни одной строки с тремя нулями, поэтому первую строку результата можем не учитывать, в таком случае следует рассматривать такую таблицу:
Заметим, что есть всего один столбец с 3 единицами, один столбец с 2 единицами, и один столбец с 1 единицей, а значит
можно соотнести столбцы из результата со столбцами из условия. Значит, на первом месте стоит переменная , на втором
– переменная
, на третьем – переменная
.
Аналитическое решение:
1. Для того, чтобы конъюнкция должна быть ложной. Рассмотрим первую строчку. Предположим, что
занимает первый столбец. Тогда
а это значит, что
Если
занимает
первый столбец, то конъюнкция будет также истинна. Следовательно, первый столбец занимает переменная
2. Рассмотрим вторую строчку. Если занимает второй столбец, а
третий, то обе скобки будут истинны, а значит, и
конъюнкция будет истинна. Значит,
занимает второй столбец, а
занимает третий столбец.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x and y) == ((not z) == x)) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x and y) == ((not z) == x)) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Для начала заметим, что в условии не дано ни одной строки с тремя единицами, поэтому последнюю строку результата можем не учитывать, в таком случае следует рассматривать такую таблицу:
Заметим, что есть всего один столбец с 2 единицами,следовательно, первый столбец - . Заметим также, что,
когда
, то и
, значит второй столбец -
, последний неопределенный столбец остается для
.
Аналитическое решение:
1. Рассмотрим вторую строку фрагмента таблицы истинности. Предположим, что занимает третий столбец.
Тогда
а значит,
Если
занимает третий столбец, то эквивалентность
будет истинна, так как обе скобки будут истинными. Следовательно, третий столбец занимает переменная
2. Используем первую строку: в ней. Значит, первая скобка будет принимать значение
. Тогда для того, чтобы
эквивалентность была ложной, надо, чтобы вторая скобка была истинна. Это будет достигнуто, если
Следовательно, переменная
занимает первый столбец, а
занимает второй.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
В ответ напишите
последовательность букв без пробелов.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (((x <= (not y)) <= (not z)) == (x and (not y))) == True: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (((x <= (not y)) <= (not z)) == (x and (not y))) == True: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Для начала заметим, что есть только один столбец с двумя единицами - это переменная . Значит, она стоит на втором
месте. В строке, где
, переменная
, а переменная
. Следовательно, на первом месте стоит
, а на
третьем –
.
Аналитическое решение:
1. Рассмотрим случай, когда вторая скобка будет истинной. Для этого Тогда и первая скобка
должна быть истинной (для истинности эквивалентности). Исходя из этого и из первой скобки мы поймём, что
.
2. В случае, когда первая скобка будет ложной При этом либо
либо
либо
Первый случай нам не подходит, так как конъюнкция в таком случае будет истинной. Заметим, что третий
случай удовлетворяет нам, он совпадает со второй строкой, следовательно,
занимает третий столбец. А из второго
случая мы поймём, что
занимает второй столбец, а
первый.
Ошибка.
Попробуйте повторить позже
Логическая функция задается выражением:
Ниже представлен фрагмент таблицы истинности функции .
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе напишите
буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу;
затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между
буквами ставить не нужно.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if not(z or ((not x) and y)): # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if not(z or ((not x) and y)): # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Заметим, что есть всего один столбец с 2 единицами, один столбец с 1 единицой, 1 столбец без единиц, следовательно, все очевидно соотносится.
Аналитическое решение:
Рассмотрим, когда . Тогда отрицание этого выражения примет значение 1. Для выполнения этого
условия
. Следовательно, переменная
занимает второй столбец. Конъюнкция во второй скобке также должна
быть ложной. Она будет истинной в том случае, когда
. Посмотрев на вторую строку, мы поймём, что для
ложности конъюнкции
. А значит, первый столбец занимает
, а третий занимает переменная
.
Ошибка.
Попробуйте повторить позже
Логическая функция задается выражением:
Ниже представлен фрагмент таблицы истинности функции .
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе напишите
буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу;
затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между
буквами ставить не нужно.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (((not x) <= (not y)) and (not (z <= y))) == True: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (((not x) <= (not y)) and (not (z <= y))) == True: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Заметим, что есть только 1 столбец с двумя единицами – переменная , и только 1 столбец с двумя нулями –
переменная
. Значит они стоят на первом и третьем местах соответственно, и по остаточному принципу на втором месте
стоит переменная
.
Аналитическое решение:
Конъюнкция истинна, когда обе скобки будут истинны. Во второй скобке представлено отрицание, а это означает, что
. Для этого
. Тогда в первой скобке, так как
переменная
может быть равна как
, так
и
. Из всего этого мы получаем, что
занимает второй столбец,
занимает третий, а
занимает
первый.
Ошибка.
Попробуйте повторить позже
Логическая функция задается выражением:
Ниже представлен фрагмент таблицы истинности функции .
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе напишите
буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу;
затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между
буквами ставить не нужно.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((y or x) <= (x == z)) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((y or x) <= (x == z)) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Заметим, что есть всего один столбец с 2 нулями, следовательно, третий столбец - . По второй строке вывода
понимаем, что, когда
, то и
может быть равным 0, а вот
- нет. Значит, второй столбец -
, третий -
.
Аналитическое решение:
1. Для ложности данной функции импликация должна быть ложной. А это означает, что дизъюнкция должна быть
истинной, а эквивалентность ложной. Эквивалентность ложна тогда, когда переменные имеют разные значения.
Заметим, что эти переменные не могут занимать первый и второй, первый и третий столбцы (так как в ячейках строк есть
одинаковые значения). Следовательно, данные переменные занимают второй и третий столбец, а переменая
занимает
первый.
2. Рассмотрим первую строку. В ней . Однако дизъюнкция должна быть истинной, а это означает, что
.
Поймём, что
занимает второй столбец. Следовательно,
занимает третий столбец.
Ошибка.
Попробуйте повторить позже
Логическая функция задается выражением:
Ниже представлен фрагмент таблицы истинности функции .
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе напишите
буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу;
затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между
буквами ставить не нужно.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((z and (not x)) <= (not ((not y) or z))) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((z and (not x)) <= (not ((not y) or z))) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Заметим, что есть только 1 столбец с двумя единицами – переменная , и только 1 столбец с двумя нулями –
переменная
. Значит они стоят на первом и третьем местах соответственно, и по остаточному принципу на втором месте
стоит переменная
.
Аналитическое решение:
Во всех трех строках . Импликация ложна, если из истины следует ложь. Значит,
и
Конъюнкция истинна, если все высказывания, входящие в нее, истинны, то есть
и
, то есть
.
Рассмотрим . Это выражение должно быть ложно, значит дизъюнкция
должна быть истинна.
Дизъюнкция истинна, если хотя бы одно из высказываний, входящих в нее, истинно. Так как
то
может быть
любым.
Так как , то первому столбцу соответствует
. Так как
, то третьему столбцу соответствует
. Так как
может быть любым, то второму столбцу соответствует
.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции
Определите, какому столбцу истинности функции соответствует каждая переменная
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x <= (not y)) <= ((not x) == (not z))) == False: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if ((x <= (not y)) <= ((not x) == (not z))) == False: # Выводим подходящую комбинацию print(x, y, z)
После запуска программы получаем результат:
Заметим, что есть всего один столбец с 2 единицами, значит на первом месте стоит , также по третьей строке вывода
программы заметим, что, когда
, то и
, следовательно на втором месте -
, на оставшемся -
.
Аналитическое решение:
Импликация ложна в случае, когда первая скобка будет истинной, а вторая скобка будет ложной. Вторая скобка ложна
в случае, когда переменные имеют разные значения. Из первой и третьей строчек мы можем сделать вывод о том,
что эти переменные не могут занимать второй и третий, первый и второй столбцы. Следовательно,
занимает второй
столбец. Рассмотрим вторую строку, в ней
Так как
то
Значит
занимает третий столбец, а
занимает первый.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции , содержащий неповторяющиеся строки.
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе укажите
переменные в соответствующем порядке без пробелов.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (not(x) and y or not(y) and (x == z)): # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (not(x) and y or not(y) and (x == z)): # Выводим подходящую комбинацию print(x, y, z)
Результат работы программы:
Заметим, что все строчки кроме первой соответствуют начальной таблице, значит, ответ
Аналитическое решение:
Запишем таблицу истинности:
Рассмотрим только те строки, в которых :
Заметим, что все строчки кроме первой соответствуют начальной таблице, значит, ответ .
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
— исключающее ИЛИ
Ниже представлен фрагмент таблицы истинности функции , содержащий неповторяющиеся строки.
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе укажите
переменные в соответствующем порядке без пробелов. Если однозначно определить столбцы невозможно, то в ответе
укажите
.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if (x == y) and (y == z) or (x != y) and z: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if (x == y) and (y == z) or (x != y) and z: # Выводим подходящую комбинацию print(x, y, z)
Результат работы программы:
Так как строка отсутствует в исходной таблице, не обращаем на нее внимание. Столбцы исходной таблицы
соотвествуют столбцам
соответственно. Но, заметим, что столбцы
и
одинаковые относительно столбца
, их
невозможно определить однозначно, значит, ответ
. Программу можно было не писать, так как таблица нам дана
изначально.
Аналитическое решение:
1. Видим, что у нас дизъюнкция двух конъюнкций, рассмотрим сначала левую часть. Левая часть равна единице, когда
икс равен игреку, а игрек равен зет, то есть когда они все равны: например на наборе
или наборе
. У нас
есть один такой набор - самая первая строка, но никакой информации нам это не даёт, так как все переменные равны
единице. В остальных случаях левая часть равняется нулю.
2. Левая часть нам дала информацию, что первая строчка будет равна единице независимо от того, что будет в правой
части, но больше ничего, так что давайте рассмотрим правую часть: у нас конъюнкция и исключающего ИЛИ
и
,
значит
всегда должен быть равен единице, а значит, что он занимает первый столбец. А что насчёт второго и третьего
столбцов? Оказывается, что они симметричны относительно того, кого бы поставим на вторую и третью позицию, то есть
наборы
и
оба вполне себе возможно, значит, что определить однозначно не возможно. Получается, что в ответ
мы указываем
.
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции , содержащий неповторяющиеся строки.
Определите, какому столбцу истинности функции соответствует каждая переменная
. В ответе укажите
переменные в соответствующем порядке без пробелов.
Решение программой с помощью циклов:
Напишем программу, которая проверяет все возможные комбинации значений переменных x, y, z (0 или 1) и выводит только те наборы, при которых заданное логическое выражение истинно. Используя вложенные циклы, код последовательно перебирает 8 вариантов, вычисляя для каждого результат выражения, и выводит на экран подходящие комбинации.
# Выводим заголовок для наглядности (значения переменных) print("x y z") # Возможные значения переменных: 0 (False) или 1 (True) a = (0, 1) # Перебираем все возможные комбинации x, y, z for x in a: for y in a: for z in a: # Проверяем, что логическое выражение с текущим набором переменных дает истину if not(x and (y <= z)) == 0: # Если условие выполнено, выводим текущую комбинацию print(x, y, z)
Решение программой с помощью itertools:
Перебор комбинаций x, y, z можно также организовать с помощью функции product из модуля itertools. Она генерирует все 8 вариантов комбинаций, а затем вычисляет значение выражения для каждого случая и выводит на экран подходящие комбинации.
# Импортируем функцию для декартова произведения from itertools import product # Выводим заголовок таблицы print("x y z") # Генерируем все возможные комбинации из 0 и 1 длины 3 (для x,y,z) for x, y, z in product([0, 1], repeat=3): # Проверяем, что логическое выражение с текущим набором переменных дает истину if not(x and (y <= z)) == 0: # Выводим подходящую комбинацию print(x, y, z)
Результат работы программы:
Столбцы исходной таблицы соотвествуют столбцам соответственно.
Аналитическое решение:
1. Заметим, что функция принимает значение на всех имеющихся наборах
,
,
, а выражение
задаётся отрицанием скобки, значит сама скобка должна давать единицу на всех наборах, чтобы её отрицание
было
. Получается выражение в большой скобке должно давать единицу, значит икс всегда должен быть
единицей, так как в этой скобке конъюнкция икса и скобки с импликацией, то есть он занимает третий
столбик.
2. Остались первые два столбика и игрек с зет: импликация должна быть истинна, а она истинна на всех наборах, кроме
набора
, т.е. не может быть такого, что
, а
, но если первый столбец это
, а второй
это
, то именно таким набором и является третья строка, значит первый столбец это
, а второй это
.