Логические задачи помогают понять работодателю образ мыслей и алгоритмы решения проблем начинающего специалиста. Они редко встречаются на собеседованиях для специалистов высокого уровня — синьоров и тимлидов.
Привет, Хабр! Меня зовут Кристина. Я ревьюер на курсе «Инженер по тестированию» в Яндекс Практикуме. Делюсь подборкой логических задач, с которыми я встречалась на собеседованиях на должность инженера по тестированию. Попробуйте решить их самостоятельно, прежде чем читать решение.
Задача №1. Про пиратов и фальшивую монету
Задача на логику, умение объяснить ход мысли и аргументировать решение: у пиратов есть 12 монет, одна из которых фальшивая. Как найти её за три взвешивания, используя чашечные весы?
Решение. Сначала разделим 12 монет на 3 равные кучки по четыре монеты в каждой. Затем кладём на каждую чашу весов по четыре монеты. Это действие может привести к двум результатам. Рассмотрим каждый из них.
1. Если вес двух кучек монет оказался одинаковым, это означает, что все монеты в них настоящие, а фальшивая находится среди четырёх оставшихся.
Чтобы отследить результат, помечаем все настоящие монеты нулём. Затем берём три из них и сравниваем их с тремя оставшимися монетами. Если их вес равен, то четвёртая оставшаяся монета — фальшивая. Если вес отличается, ставим на трёх неподписанных монетах знак «плюс», если они тяжелее подписанных, или знак «минус», если они легче.
Затем берём две монеты, помеченные знаком «плюс» или «минус», и сравниваем их вес. Если их вес одинаков, то оставшаяся монета — фальшивая. Если нет, определяем, какая из монет тяжелее или легче, в зависимости от знака: среди монет со знаком «плюс» фальшивая — та, что тяжелее, а среди монет со знаком «минус» — та, что легче.
2. Если вес двух кучек монет оказался неодинаковым, нам нужно поступить так:
деньги в тяжёлой кучке пометить плюсом;
в лёгкой — минусом;
в невзвешенной — ноликом.
Известно, что фальшивый экземпляр был на весах.
Теперь нужно перегруппировать монеты, чтобы использовать два оставшихся взвешивания. Можно взять вместо трёх монет с плюсом три монеты с минусом, а на их место положить три штуки с ноликом.
Есть три варианта:
Если чаша весов, которая была тяжелее, всё ещё перевешивает, значит, либо старая монета со знаком плюс на ней тяжелее остальных, либо оставшаяся на другой чаше весов монета со знаком минус — легче. Нам нужно выбрать любую из них и сравнить с обычным образцом, чтобы найти фальшивку.
Если чаша весов, которая была тяжелее, стала легче, значит, одна из трёх перемещённых монет со знаком минус и есть самая лёгкая. Теперь нужно сравнить на весах две из них. При равенстве результатов третья монета будет поддельной. При неравенстве — фальшивая та, что легче.
Если после замены чаши уравновесились, одна из трёх снятых с весов монет со знаком плюс тяжелее остальных. Нам нужно сравнить две из них. При их равенстве третья — поддельная. При неравенстве ненастоящая та, что тяжелее.
Задача №2. Про улиток и колодец
Задача на базовые знания математики: три улитки ползают по дну колодца глубиной 30 метров. За день они поднимаются на 18 метров каждая, но потом сползают вниз:
первая на 12 метров;
вторая на 16 метров;
третья на 17 метров.
Каждая улитка сползает на указанное расстояние за ночь и остаётся там до следующего дня. Через сколько дней улитки смогут выбраться?
Решение (обновлено). Улитка выберется, как только преодолеет 30 метров за день вверх. Это произойдет, когда улитка после спуска окажется на 30 – 18 = 12 метрах.
Узнаем, насколько метров каждая улитка продвигается, пока не достигнет 12 метров (гарантия, что на следующий день она выберется):
первая улитка каждый день поднимается на 6 метров,
вторая — на 2 метра, третья — на 1 метр.
Первая улитка выберется через (12 / 6 = 2) + 1 = 3 дня, вторая улитка через (12 / 2 = 6) + 1 = 7 дней, третья улитка через (12 / 1 = 12) + 1 = 13 дней.
Задача №3. Про банки с крупой
Задача на внимательность, скорость ответа на внезапный несложный вопрос: на полке стоят три банки. В одной пшено, в другой — рис, а в третьей — смесь пшена и риса. Наклейки на банках перепутаны. Ваша задача достать только одно зерно. Определите, в какой из банок находится пшено, доставая только одно зерно из банки с надписью «Смесь».
Решение. Достаём зерно из банки с наклейкой «Смесь». Поскольку по условию все названия перепутаны, значит, они точно ложные. Значит, эта банка либо с пшеном, либо с рисом. Определить содержимое остальных банок можно методом исключения.
Задача №4. Про стражников и двери
Задача на логику и скорость ответа: вы в замке, перед вами две закрытые двери. За одной спрятаны сокровища, а за второй находится тюрьма.
Каждую дверь охраняет стражник. Они оба знают, куда ведёт каждая дверь. Один из стражников всегда лжёт, а второй говорит только правду. Вы об этом знаете, но не знаете, кто есть кто.
Ваша цель — при помощи всего одного вопроса только одному стражнику узнать, какая дверь ведёт в сокровищницу.
Решение. Так как мы не знаем, какой стражник постоянно врёт, а какой говорит правду, мы должны придумать универсальный вопрос, на который и тот и другой ответили бы одинаково.
Спрашиваем любого стражника: «Какая дверь, по мнению другого стражника, ведёт к сокровищам?» Если задать этот вопрос лжецу, то он, зная, что другой привратник точно сказал бы правду и указал бы на дверь в сокровищницу, укажет на дверь темницы. Если же так сложится, что на этот вопрос будет отвечать тот, кто всегда говорит правду, то он, зная, что другой указал бы на дверь, ведущую в тюрьму, тоже укажет на неё.
В любом случае вам укажут на дверь темницы. Значит, чтобы попасть в сокровищницу, нам нужно пойти в другую.
Задача №5. Про дата-центр Яндекса*
Задача на внимательность к деталям, которая необходима тестировщику для анализа документации и реализации проверок продукта на соответствие требованиям.
В вашей ответственности 10 тысяч серверов в дата-центре с возможностью удалённого управления и всего 24 часа, чтобы получить миллион долларов. Что вы для этого сделаете?
Решение. Возможно, вы подумали: «Почему такой вопрос задаётся соискателю на позицию тестировщика?» Сейчас задача HR — проверка вашей внимательности к деталям.
Дело в том, что демонстрация бизнес-плана, в котором предложено, как эффективно задействовать все сервера, не подходит под условия задачи, ведь дано всего 24 ч. В таком случае для получения миллиона долларов достаточно продать все сервера по 100 долларов за штуку.
Задача №6. Про математика и вёдра
Задача на алгоритм действий: король заточил великого математика в темницу за критику налоговой системы. Однако учёному выпал шанс использовать свои знания и выйти на свободу, если тот с помощью двух вёдер объёмом 5 литров и 3 литра отмерит четыре литра. Запас воды и количество переливаний не ограничены.
Решение.
Математик наполняет пятилитровое ведро водой.
Жидкость из пятилитрового ведра выливает в трёхлитровое, в пятилитровом остаётся 2 литра.
Математик выливает воду из трёхлитрового ведра и наливает туда два литра из пятилитрового.
Полностью заполняет пятилитровое и переливает недостающий литр в трёхлитровое.
Итого в пятилитровом ведре получается ровно 4 литра воды, и великий математик выходит на свободу.
Задача №7. Про байкеров
Задача на логику и базовую математику: в небольшом городке на окраине страны жил талантливый инженер по имени Максим. Он был известен своими изобретениями и нестандартными подходами к решению задач.
Однажды к нему обратился бизнесмен. Он рассказал, что планирует организовать мотопробег по всей стране, чтобы привлечь внимание к своему бизнесу и собрать средства на благотворительность. У него есть 50 мотоциклов с полным баком, которого хватает на 100 км езды.
Какое максимальное расстояние возможно проехать, используя все мотоциклы? Все мотоциклы в начале пути находятся условно в одной точке.
Решение. Найти 50 байкеров, рассадить их по мотоциклам и одновременно проехать 100 км. Мы можем проехать 50 км, используя все байки, затем перелить топливо из половины мотоциклов в оставшиеся. Повторяя процесс, можно увеличить общее расстояние до 350 км.
Задача №8. Про местоположение от Илона Маска
Задача на логику. Вы стоите на поверхности Земли. Вы проходите одну милю на юг, одну на запад и одну на север и оказываетесь в той же точке, откуда начали движение. Где вы находитесь?
Решение. Северный полюс. Если начать движение с Северного полюса, пройти одну милю на юг, затем повернуть на запад и пройти ещё одну милю, а после этого изменить направление на северное, то через одну милю вы вернётесь на Северный полюс, образовав таким образом треугольник.
Задача №9. Про проклятый старый дом
Задача на логику, внимание к деталям, чувство юмора и музыкальный вкус (что следует из названия задачи).
Вы попали в старое заброшенное здание. В нём выбиты стёкла, но электричество ещё работает. По разрушенным ступеням вы поднимаетесь на крыльцо и заходите в мрачный коридор.
Перед вами две комнаты. За первой дверью низкие потоки и висят 3 лампы накаливания. Во второй комнате есть 3 выключателя, подсоединённых к каждой из ламп. Способы и последовательность переключения выключателей не ограничены, но перейти из второй комнаты в первую можно лишь один раз.
Как узнать, за какую лампу отвечает каждый из выключателей?
Решение. Неспроста в условии задачи упоминаются низкие потолки — можно дотянуться до лампы. Вторая деталь — это лампы накаливания. Исходя из бытового опыта, даже начинающий тестировщик знает, что они сильно нагреваются.
Поэтому нам нужно, находясь во второй комнате, включить любую лампу на пару минут, выключить, а затем включить любую другую. Первый выключатель, который мы использовали, будет присоединён к лампе, которая ещё тёплая. Второй выключатель — к светящейся лампе. А выключатель, который мы не трогали, будет подсоединён к выключенной холодной лампе.
Задача №10. Про истину, которая где-то рядом
Задача на внимательность, находчивость, чувство юмора, умение быстро сориентироваться и не растеряться, не торопиться говорить решение простой, на первый взгляд, задачи.
На аэродром Жубковский прилетает летающая тарелка с инопланетянами. Их оперативно находит агент ФСБ Феофан Маудеров и спрашивает простую задачку для проверки коммуникации с людскими особями. Он задаёт следующий вопрос: «У вас есть 30 яблок, и вам нужно из них что-то сделать. Для начала нужно разделить их на ½, а затем прибавить 10. Какое число мы получим?»
Решение. Здесь главное не расслабляться из-за кажущейся простоты задачи и не начинать делить 30 на 2, а затем приплюсовывать 10. Мы не должны получить 25. Правильным ответом будет 70, ведь если мы делим на дробь, её следует перевернуть, а значит, умножить 30 на 2. К полученным 60 останется прибавить 10.
Не обещаю, что подобные задачи встретятся на собеседовании. Это зависит от работодателя, команды и атмосферы. В финтехе вряд ли будут задачки с юмором, но, к примеру, в игровой индустрии они выглядят уместно.
Менеджеры по подбору персонала отмечают, что зачастую во время собеседования при одинаковом уровне хардскилов важными оказываются софты. Поэтому задания со звёздочкой предлагают в конце технической части собеседования, когда голова претендента уже «перегружена» техническими моментами.
Тогда-то и хотят не «подловить», а скорее понять, как человек размышляет, и поэтому предлагают логические задачи. Часто они кажутся неожиданными и неуместными, но важно помнить, что тестировщики работают в команде и их подход к решению задач должен быть схожим.
Менеджер по персоналу или тимлид с помощью этих задач могут оценить реакцию претендента в стрессовой ситуации, узнать, как человек себя поведёт. Мне было интересно, поэтому я спросила интервьюера после решения задачки на взвешивание монет.
Тимлид, проводивший собеседование, подметила, что многие претенденты вообще отказываются решать подобные задачи, кто-то теряется, реагирует недоброжелательно и включает защитный механизм пассивной агрессии. Так что ключевым фактором отбора будет не столько правильный ответ, сколько реакция на вопрос и рассуждения.
Загадки на логику предполагают проверку анализа информации и принятия логичных решений на основе предложенных данных. Существуют задачки на последовательности и шаблоны, где требуется найти закономерности в последовательностях чисел, букв или символов. Креативное мышление проверяется головоломками.
Научиться решать логические задачи несложно. Для начала можно набраться опыта, посмотрев решения разных головоломок, только потом попробовать решить такие задачи самому, когда уже есть насмотренность. Поэтому стоит регулярно практиковаться. После того, как вы нашли решение, важно сравнить его с предложенным эталоном (если таковой имеется), проанализировать оба варианта, сопоставить и провести работу над ошибками. Также поможет изучение специальной литературы по логике.
Задачи на логику помогут «прокачать мозг», отсрочить деменцию, разовьют критическое мышление, способствуют принятию взвешенных решений и способности делать логически обоснованные выводы. Если вы уже работаете в компании мечты, подобные задачки будет полезно решать для собственного развития.
Делитесь в комментариях интересными логическими задачами. Давайте попробуем все вместе их решить.