Таблица истинности: какая переменная в каком столбце
Дано логическое выражение и несколько строк его таблицы истинности, часть клеток пустая. Столбцы не подписаны. Нужно восстановить, какой переменной соответствует каждый столбец.
Логические операции
¬a
отрицание, НЕ. В Python: not a
a ∧ b
И: 1, только если оба 1. a and b
a ∨ b
ИЛИ: 0, только если оба 0. a or b
a → b
импликация: 0, только если a = 1, b = 0. a <= b
a ≡ b
эквивалентность: 1, если a и b равны. a == b
Как решать вручную
Выписать все наборы, где F принимает значение из фрагмента. Их обычно мало.
Найти закономерности: переменная всегда равна 1 или 0, две переменные всегда равны или всегда различаются.
По известным клеткам исключить невозможные столбцы.
Подобрать расстановку, проверив, что строки фрагмента не совпадают.
Типичные ошибки
Забыть, что строки фрагмента разные: из-за этого часто получается лишний ответ.
Перепутать направление импликации: 1 → 0 даёт 0, а 0 → 1 даёт 1.
В Python написать not a <= b без скобок: это значит not (a <= b).
Разобранные варианты
Варианты 1–10 идут от простого к сложному: первые два с тремя переменными. Сначала стоит решить самому, потом открыть разбор. В каждом разборе есть программа на Python.
Вариант 1
3 переменные
Логическая функция F задана выражением F = ¬y ≡ (¬z ∨ x). Ниже дан фрагмент её таблицы истинности: 2 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
F
0
1
1
1
1
1
Разбор
Шаг 1. Когда F = 1? Перебираем все 8 наборов значений x, y, z. F = 1 только в 4 из них. Каждая строка фрагмента — один из этих наборов.
x
y
z
F
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Простых закономерностей нет, поэтому подбираем расстановку, сравнивая строки фрагмента с наборами из шага 1.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: y
2: x
3: z
F
0
1
0
1
0
1
1
1
Ответ: yxz
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(x, y, z):
return (not y) == ((not z) or x)
answers = set()
for a1, a2 in product([0, 1], repeat=2):
table = [(0, 1, a1),
(a2, 1, 1)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('xyz'):
if all(F(**dict(zip(p, row))) == 1 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 2
3 переменные
Логическая функция F задана выражением F = (¬y ≡ z) → (x ∧ ¬z). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
F
0
1
1
0
0
0
0
0
Разбор
Шаг 1. Когда F = 0? Перебираем все 8 наборов значений x, y, z. F = 0 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
x
y
z
F
0
0
1
0
0
1
0
0
1
0
1
0
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
В подходящих наборах y и z всегда различаются. Значит, y и z не могут занимать пары столбцов: 1 и 3; 2 и 3.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: y
2: z
3: x
F
0
1
1
0
0
1
0
0
1
0
0
0
Ответ: yzx
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(x, y, z):
return ((not y) == z) <= (x and (not z))
answers = set()
for a1, a2, a3, a4 in product([0, 1], repeat=4):
table = [(0, 1, 1),
(0, a1, 0),
(a2, a3, a4)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('xyz'):
if all(F(**dict(zip(p, row))) == 0 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 3
4 переменные
Логическая функция F задана выражением F = (¬x ∨ w) → (z → y). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
0
0
0
1
0
1
0
0
0
0
Разбор
Шаг 1. Когда F = 0? Перебираем все 16 наборов значений w, x, y, z. F = 0 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах y = 0. В столбцах 1 и 4 есть 1, поэтому y может стоять только в столбце 2 или 3.
Во всех подходящих наборах z = 1. В столбцах 2, 3 и 4 есть 0, поэтому z может стоять только в столбце 1.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: z
2: y
3: x
4: w
F
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
Ответ: zyxw
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return ((not x) or w) <= (z <= y)
answers = set()
for a1, a2, a3, a4, a5 in product([0, 1], repeat=5):
table = [(a1, 0, 0, a2),
(1, 0, a3, 1),
(a4, a5, 0, 0)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 0 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 4
4 переменные
Логическая функция F задана выражением F = ¬z → ((y ∨ x) ≡ (x → w)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
1
1
0
0
1
0
1
0
0
0
Разбор
Шаг 1. Когда F = 0? Перебираем все 16 наборов значений w, x, y, z. F = 0 только в 4 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах z = 0. В столбцах 1, 2 и 4 есть 1, поэтому z может стоять только в столбце 3.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: w
2: y
3: z
4: x
F
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
Ответ: wyzx
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return (not z) <= ((y or x) == (x <= w))
answers = set()
for a1, a2, a3, a4, a5 in product([0, 1], repeat=5):
table = [(a1, 1, a2, 1),
(0, a3, a4, 1),
(1, 0, 0, a5)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 0 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 5
4 переменные
Логическая функция F задана выражением F = (w → y) → (x ≡ (z ∧ x)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
0
1
0
0
0
0
0
0
0
Разбор
Шаг 1. Когда F = 0? Перебираем все 16 наборов значений w, x, y, z. F = 0 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах x = 1. В столбцах 2, 3 и 4 есть 0, поэтому x может стоять только в столбце 1.
Во всех подходящих наборах z = 0. В столбце 4 есть 1, поэтому z может стоять только в столбце 1 или 2 или 3.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: x
2: z
3: y
4: w
F
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
Ответ: xzyw
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return (w <= y) <= (x == (z and x))
answers = set()
for a1, a2, a3, a4, a5, a6 in product([0, 1], repeat=6):
table = [(a1, 0, a2, 1),
(a3, a4, 0, 0),
(a5, 0, a6, 0)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 0 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 6
4 переменные
Логическая функция F задана выражением F = ((x → w) → y) ∧ ¬z ∧ x. Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
1
0
1
1
1
1
0
0
1
Разбор
Шаг 1. Когда F = 1? Перебираем все 16 наборов значений w, x, y, z. F = 1 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах x = 1. В столбцах 1 и 4 есть 0, поэтому x может стоять только в столбце 2 или 3.
Во всех подходящих наборах z = 0. В столбцах 1, 2 и 4 есть 1, поэтому z может стоять только в столбце 3.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: y
2: x
3: z
4: w
F
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
Ответ: yxzw
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return ((x <= w) <= y) and (not z) and x
answers = set()
for a1, a2, a3, a4, a5, a6 in product([0, 1], repeat=6):
table = [(a1, 1, a2, 0),
(1, a3, a4, 1),
(0, a5, a6, 0)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 1 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 7
4 переменные
Логическая функция F задана выражением F = z ∧ ¬((x → w) ∧ (y ∨ w)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
0
0
1
1
0
1
0
1
1
Разбор
Шаг 1. Когда F = 1? Перебираем все 16 наборов значений w, x, y, z. F = 1 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах w = 0. В столбцах 1 и 4 есть 1, поэтому w может стоять только в столбце 2 или 3.
Во всех подходящих наборах z = 1. В столбцах 1, 2 и 4 есть 0, поэтому z может стоять только в столбце 3.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: x
2: w
3: z
4: y
F
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
Ответ: xwzy
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return z and (not ((x <= w) and (y or w)))
answers = set()
for a1, a2, a3, a4, a5, a6 in product([0, 1], repeat=6):
table = [(0, 0, a1, a2),
(1, a3, a4, 0),
(a5, 0, a6, 1)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 1 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 8
4 переменные
Логическая функция F задана выражением F = ¬(z ≡ (¬w ∧ x)) ∧ ((y → x) ≡ w). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
0
1
1
0
0
1
1
0
1
Разбор
Шаг 1. Когда F = 1? Перебираем все 16 наборов значений w, x, y, z. F = 1 только в 4 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах z = 1. В столбцах 2, 3 и 4 есть 0, поэтому z может стоять только в столбце 1.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: z
2: y
3: w
4: x
F
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
Ответ: zywx
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return (not (z == ((not w) and x))) and ((y <= x) == w)
answers = set()
for a1, a2, a3, a4, a5, a6 in product([0, 1], repeat=6):
table = [(a1, 0, 1, a2),
(a3, a4, 0, 0),
(1, a5, a6, 0)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 1 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 9
4 переменные
Логическая функция F задана выражением F = (w ∧ ¬(y ≡ x)) → (y ∧ (z ≡ ¬w)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
1
0
0
1
0
0
0
0
Разбор
Шаг 1. Когда F = 0? Перебираем все 16 наборов значений w, x, y, z. F = 0 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах w = 1. В столбцах 3 и 4 есть 0, поэтому w может стоять только в столбце 1 или 2.
В подходящих наборах x и y всегда различаются.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: w
2: z
3: y
4: x
F
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
Ответ: wzyx
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return (w and (not (y == x))) <= (y and (z == (not w)))
answers = set()
for a1, a2, a3, a4, a5, a6, a7 in product([0, 1], repeat=7):
table = [(1, a1, 0, a2),
(1, a3, 0, a4),
(a5, a6, a7, 0)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 0 for row in table):
answers.add(''.join(p))
print(answers)
Вариант 10
4 переменные
Логическая функция F задана выражением F = ((z → ¬x) → (y ∨ w)) ≡ (¬z → y). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
0
1
0
1
1
0
1
0
Разбор
Шаг 1. Когда F = 0? Перебираем все 16 наборов значений w, x, y, z. F = 0 только в 3 из них. Каждая строка фрагмента — один из этих наборов.
w
x
y
z
F
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
Шаг 2. Ищем закономерности в подходящих наборах и сравниваем со столбцами фрагмента.
Во всех подходящих наборах y = 0. В столбцах 2, 3 и 4 есть 1, поэтому y может стоять только в столбце 1.
В подходящих наборах w и z всегда различаются. Значит, w и z не могут занимать пары столбцов: 3 и 4.
Шаг 3. Подбираем расстановку, чтобы каждая строка совпала с одним из наборов шага 1 и строки не повторялись. Подходит только одна; заполненные пропуски выделены:
1: y
2: z
3: x
4: w
F
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
Ответ: yzxw
Решение на Python. Программа перебирает все заполнения пропусков и все расстановки переменных; <= — это импликация, == — эквивалентность.
from itertools import product, permutations
def F(w, x, y, z):
return ((z <= (not x)) <= (y or w)) == ((not z) <= y)
answers = set()
for a1, a2, a3, a4, a5, a6, a7 in product([0, 1], repeat=7):
table = [(0, a1, a2, 1),
(a3, a4, 1, 1),
(a5, 1, a6, a7)]
if len(set(table)) < len(table): # строки фрагмента должны быть разными
continue
for p in permutations('wxyz'):
if all(F(**dict(zip(p, row))) == 0 for row in table):
answers.add(''.join(p))
print(answers)
Для самостоятельного решения
Варианты 11–15 без разборов. Ответ можно проверить кнопкой.
Вариант 11
4 переменные
Логическая функция F задана выражением F = z ∧ ¬((y → x) ∧ (¬w → x)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
0
0
0
1
1
1
1
1
0
1
Вариант 12
4 переменные
Логическая функция F задана выражением F = x → ((y ∨ z) ∧ (¬w → ¬z)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
1
1
1
0
1
1
0
0
0
Вариант 13
4 переменные
Логическая функция F задана выражением F = ¬(x → z) ∧ ((y ∧ ¬w) → (y → z)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
1
1
1
0
0
1
0
0
1
Вариант 14
4 переменные
Логическая функция F задана выражением F = ¬((w ∨ y) ≡ z) → ((z → x) ≡ y). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.
Перем. 1
Перем. 2
Перем. 3
Перем. 4
F
1
0
1
1
0
1
1
0
Вариант 15
4 переменные
Логическая функция F задана выражением F = (y → x) ∧ z ∧ (¬w → (y ≡ z)). Ниже дан фрагмент её таблицы истинности: 3 различные строки, часть клеток не заполнена. Неизвестно, какой из переменных w, x, y, z соответствует каждый столбец. Определите это соответствие. В ответе запишите буквы w, x, y, z в порядке столбцов (первая буква — переменная первого столбца и т. д.), подряд, без пробелов.