Американские корпорации задали тренд на головоломки при собеседовании ИТ-специалистов — даёшь нестандартную задачу и наблюдаешь, как кандидат действует в условиях неопределённости. Обычно это нужно в двух ситуациях: при высокой конкуренции на вакансию или когда работа связана с креативом. Сегодня мы разберём четыре метода, которые упрощают решение подобных головоломок.
Памятка
👉 Не все ИТ-компании пользуются головоломками и положительно к ним относятся. Однако если спросят — лучше быть готовым.
👉 Если интервьюер задаёт сложную головоломку, то, по его мнению, вы её способны решить или должны задать уточняющие вопросы для упрощения.
👉 Ход мыслей важнее правильного ответа. Поэтому озвучивайте варианты и не бойтесь ошибаться — нормальные интервьюеры всегда подсказывают.
👉 Не существует универсального решения для всех головоломок — помогает только тренированность и интерес к самостоятельному разбору новых задач.
Декомпозиция
Суть. Вы читаете головоломку и переносите условие в таблицу из трёх блоков: исходные данные, действия и результат. Таблица структурирует информацию и помогает понять, с чего начать рассуждение и какие данные можно игнорировать.
Когда использовать. В случае длинного или запутанного условия.
Пример. У фермера двадцать кур, две коровы и один щенок. Каждые три дня в 5:00 фермер доит корову, кормит щенка и забирает три яйца от трёх кур. Посчитайте, сколько яиц снесут все куры за девять дней?
Перед нами задача с разными переменными и процессами — это значит, что за множеством условий скрыта какая-то деталь или они нужны для отвлечения внимания. Чтобы быстро сориентироваться — составим таблицу: в исходные данные запишем объекты; в действия — выполненные процессы; в результат — ответ, который нужно получить. Если условие разложено по полочкам, то легко найти отправную точку и выделить необходимые данные для расчёта.
Исключение
Суть. Нужно сгруппировать однотипные данные, отметить известные переменные и постепенно распутать клубок неизвестных. Правильная табличная группировка превращает подобные головоломки в простые задачи на внимательность.
Когда использовать. Если нужно упорядочить данные.
Пример. Встретились три подруги: Ира, Катя и Света. У одной девушки были красные туфли, у другой — чёрные, у третьей — синие. Платья тоже были красного, чёрного и синего цвета. Известно, что только у Иры платье и туфли были одного цвета. Света была в синих туфлях. На Кате не было ничего чёрного. Определите, какого цвета платья и туфли были у каждой из подруг?
Туфли и платья — это два типа данных, которые мы разделим на две таблицы и сгруппируем. Теперь заполняем таблицы и находим неизвестные переменные:
- Света: отмечаем синие туфли; исключаем чёрные и красные туфли, синее платье.
- Катя: исключаем чёрные туфли и платье.
- Катя: отмечаем красные туфли; исключаем красное платье; отмечаем синее платье.
- Ира: отмечаем чёрное платье и туфли.
- Света: отмечаем красное платье.
Результат: Ира в чёрном платье и чёрных туфлях; Катя в красных туфлях и синем платье; Света в красном платье и синих туфлях.
Худший случай
Суть. Если задача предполагает неограниченное количество попыток или шагов — считаем, что нам не повезёт, и делаем расчёты для наихудшего варианта.
Когда использовать. Если с разными объектами совершают однотипные действия: их взвешивают, считают, перекладывают, переливают и так далее.
Пример. В ящике 100 разноцветных треугольников: 30 чёрных, 15 синих, 15 красных, 10 зелёных, 10 розовых, 10 оранжевых, 5 фиолетовых и 5 коричневых. Сколько треугольников нужно вытащить, чтобы среди них был один фиолетовый?
В данном случае худший вариант будет таким: мы вытянем 95 треугольников и среди них не будет ни одного фиолетового. Поэтому если мы вытащим 96 треугольников, то среди них точно будет один фиолетовый.
Действуем от противного
Суть. Нужно перевернуть исходные данные и доказать, что они неверны. В результате мы подтвердим своё предположение или найдём противоречие.
Когда использовать. Если известно суждение и его нужно подтвердить или опровергнуть ограниченным количеством информации.
Пример. Есть круг из 15 смайликов зелёного и красного цвета. Докажите, что хотя бы у одной пары соседних смайликов будет один цвет?
Предполагаем, что описанный сценарий невозможен и у всех соседних смайликов разные цвета — должно получиться семь или восемь пар. Делим пятнадцать на два и получаем семь с половиной — нечётное число, противоречащее нашему утверждению. Значит, хотя бы у одной пары будет одинаковый цвет.
Что дальше
Прочтите книгу Уильяма Паудстоуна «Найти умного. Как проверить логическое мышление и творческие способности кандидата». Она о том, как проверяют логическое мышление программистов при собеседовании в Microsoft.
Потренируйтесь на наших задачах из раздела «Как решить».Посетите braingames.ru — это сайт, где тренируется руководитель группы рекомендательных систем лаборатории ИИ Сбера Алексей Васильев. На следующей неделе у нас с ним выйдет интервью, стей тюнед.