Задачи на множества на собеседовании аналитика

Зачем аналитику теория множеств

Теория множеств — основа аналитического мышления. Каждый SQL-запрос работает с множествами: INNER JOIN — пересечение, UNION — объединение, EXCEPT — разность. Сегментация пользователей — это разбиение множества на подмножества. Когортный анализ — работа с пересечениями когорт и событий.

На собеседовании задачи на множества проверяют, умеете ли вы корректно считать при наличии пересечений. Классический формат: «В группе N человек, X знают Python, Y знают SQL, Z знают оба. Сколько знают хотя бы один язык?» За простотой формулировки скрываются ловушки.

Диаграмма Венна — лучший друг аналитика на собеседовании. Нарисуйте круги, подпишите области — и задача, которая казалась запутанной, станет очевидной. Не стесняйтесь рисовать при интервьюере.

Базовые операции

Объединение (A или B). Все элементы, которые входят хотя бы в одно множество. |A U B| = |A| + |B| - |A и B|. Вычитаем пересечение, чтобы не посчитать его дважды.

Пересечение (A и B). Элементы, входящие в оба множества одновременно. В SQL — INNER JOIN или INTERSECT.

Разность (A без B). Элементы A, не входящие в B. |A \ B| = |A| - |A и B|. В SQL — LEFT JOIN ... WHERE B.id IS NULL или EXCEPT.

Дополнение. Все элементы универсального множества, не входящие в A. Если вселенная — все пользователи (1000), а A — активные (300), то неактивных — 700.

Симметричная разность. Элементы, входящие ровно в одно из двух множеств: |A △ B| = |A| + |B| - 2 * |A и B|. На собеседованиях встречается реже, но полезно знать.

Принцип включения-исключения

Для двух множеств: |A U B| = |A| + |B| - |A и B|.

Для трёх множеств: |A U B U C| = |A| + |B| + |C| - |A и B| - |A и C| - |B и C| + |A и B и C|.

Логика: сначала прибавляем все множества (включение), затем вычитаем попарные пересечения (исключение), затем прибавляем тройное пересечение (которое вычли трижды, нужно вернуть).

На собеседовании формулу для трёх множеств дают часто. Ключ к решению — аккуратно подставить числа и не перепутать знаки.

Диаграммы Венна: практический инструмент

Диаграмма Венна для двух множеств разбивает пространство на 4 области: только A, только B, A и B, ни A ни B. Для трёх множеств — 8 областей. Заполнив все области числами, вы получите ответ на любой вопрос о множествах.

Алгоритм заполнения. Начинайте с самого глубокого пересечения (центральная область — A и B и C). Затем заполняйте попарные пересечения (вычитая центр). Затем — области «только A», «только B», «только C». В последнюю очередь — область «ни один».

Типичные задачи

Задача 1: В группе 50 студентов. 30 изучают Python, 25 изучают SQL, 10 изучают оба. Сколько не изучают ни один язык? Решение: |A U B| = 30 + 25 - 10 = 45. Не изучают ни один: 50 - 45 = 5.

Задача 2: Из 100 пользователей 60 сделали покупку, 45 оставили отзыв, 30 сделали и покупку, и отзыв. Сколько не сделали ни того, ни другого? Решение: |A U B| = 60 + 45 - 30 = 75. Ответ: 100 - 75 = 25.

Задача 3: В компании 200 сотрудников. 120 знают Excel, 90 знают SQL, 60 знают Python. Excel и SQL — 50, Excel и Python — 30, SQL и Python — 25, все три — 15. Сколько не знают ни одного инструмента? Решение: |A U B U C| = 120 + 90 + 60 - 50 - 30 - 25 + 15 = 180. Ответ: 200 - 180 = 20.

Задача 4: Если |A| = 40, |B| = 35, |A U B| = 60, найдите |A и B|. Решение: |A и B| = 40 + 35 - 60 = 15.

Типичная ловушка: задача даёт «A или B = 70» и спрашивает «только A». Без знания пересечения ответить нельзя. Всегда проверяйте, достаточно ли данных для однозначного решения.

Типичные ошибки

  • Забывают вычесть пересечение — складывают размеры множеств и получают число больше универсального множества.
  • Путают «A и B» с «только A и B» — «A и B» включает элементы, входящие также в C. «Только A и B» — исключает C.
  • Не рисуют диаграмму — пытаются решить в уме и путаются в числах. Диаграмма Венна спасает от ошибок.
  • Не проверяют сумму — все области диаграммы должны в сумме давать размер универсального множества.

Как готовиться

Решите 10 задач: 5 на два множества, 5 на три. Каждый раз рисуйте диаграмму Венна и заполняйте все области. После 10 задач формула включения-исключения станет автоматической.

Задачи на множества тесно связаны с комбинаторикой — принцип включения-исключения используется в обеих темах. Также полезно знать задачи на проценты — часто множества задаются в процентах от общего. Все темы — в разделе задачи на логику.

FAQ

Нужно ли знать формулу для четырёх и более множеств?

На собеседовании аналитика — нет. Задачи на четыре множества встречаются крайне редко. Достаточно уверенно владеть формулой для двух и трёх множеств. Если вдруг попадётся задача на четыре — рисуйте диаграмму и заполняйте области вручную.

Как связаны задачи на множества с SQL?

Напрямую. INNER JOIN — пересечение ключей. LEFT JOIN — все элементы левого множества плюс пересечение. UNION — объединение. EXCEPT — разность. Если вы уверенно решаете задачи на множества, вы лучше понимаете поведение SQL-запросов.

Что делать, если в задаче недостаточно данных?

Скажите об этом интервьюеру. «Для однозначного ответа мне нужно знать размер пересечения. Без него я могу дать только диапазон: от ... до ...» — это зрелый аналитический подход. Иногда интервьюер именно этого и ждёт: проверяет, заметите ли вы недостаток данных.

Смотрите также