Часто для решения логических задач приходится держать все условия в голове одновременно, а мозгу это не нравится. В этой статье — техника, которая заменяет память на инструмент и делает даже запутанные головоломки решаемыми за несколько шагов.
Логическую задачу легко «потерять» в процессе решения. Условий много, они зависят друг от друга, и как только пытаешься учесть одно — вылетает другое. Сетка (в двумерном случае — обычный квадрат) решает эту проблему: каждое условие фиксируется наглядно, ничего не нужно держать в голове.
Ниже — шесть головоломок. Оригиналы первых пяти приведены без решения в исходной статье, шестая — новая, трёхмерная, сложнее.
Метод сетки применён для 5-ой и 6-ой задач. Остальные решены другими способами.
Головоломка 1. Какого цвета был медведь
Охотник, выйдя из своей избушки, прошёл (пробежал) на юг какое-то расстояние (пусть это будет 200 километров), затем повернув перпендикулярно и одолев такое же расстояние, подстрелил там медведя. Пройдя опять 200 км, вернулся в избушку. Вопрос: какого цвета был медведь?
Решение. На обычной поверхности вернуться в исходную точку за три плеча пути невозможно — нужно четыре. Это работает только в одном случае: если стартовая точка — Северный полюс. Идя на юг, охотник движется по меридиану; повернув, идёт по широте; следующие 200 км возвращают его точно на полюс. Медведи в Арктике бывают только белые. Подобная ситуация была бы возможна при старте с Южного полюса в северном направлении. Но там медведи не водятся.
Ответ: медведь белый.
Головоломка 2. Куда делась сотня?
Путешественники заселяются в номер в отеле. Платят 3000 рублей. Им возвращают 100 рублей каждому и 200 рублей горничная оставляет себе. Вопрос: так как каждым туристом было заплачено 1000 - 100 = 900, 2700 на троих и 200 осталось у горничной, куда делись 100 рублей?
Решение. Никуда не делись — их нет. Парадокс возникает из-за ошибки в логике подсчёта: 2700 и 200 нельзя складывать.
Путники потратили 900 х 3 = 2700. Отель заработал: 3000 - 500 + 200 (горничная вернула 200 менеджеру) = 2700.
Всё сходится. Никакого парадокса.
Задача 3. Перепутанные ящики
Три ящика с теннисными мячами подписаны: «Белые», «Жёлтые», «Жёлтые и белые». Все ярлыки перепутаны. Вы берёте один тубус с тремя мячами из одного ящика. Как определить, что лежит в каждом?
Решение. Поскольку все ярлыки гарантированно неверны, цвет извлечённых мячей сразу раскрывает содержимое этого ящика: то, что написано на нём, там не лежит. Дальше содержимое двух оставшихся ящиков восстанавливается однозначно. Схема ниже показывает все варианты в зависимости от того, из какого ящика взят тубус — и в каждом случае решение единственное. Второе существующее решение ошибочно, т. к. противоречит условиям задачи.
Головоломка 4. Кто преступники?
Из показаний 5 задержанных определить двоих преступников. В ответе на вопрос: "Кто это сделал?" правонарушители говорят правду, а невинные свидетели лгут.
Показания:
- Константин: «Это не Сергей»
- Сергей: «Это Екатерина и Константин»
- Екатерина: «Это Виктор»
- Виктор: «Это я»
- Дмитрий: «Это не Екатерина»
Решение — шаг за шагом.
Показание Сергея (#2): если оно правдиво, то преступники — Екатерина, Константин и сам Сергей. Это три человека, что противоречит условию. Значит, Сергей — свидетель (солгал). Следовательно, Екатерина и Константин вместе преступниками не являются.
Возвращаемся к показанию Константина (#1): зная, что Сергей — свидетель, «это не Сергей» оказывается правдой. Значит, Константин — преступник.
Показание Екатерины (#3): если оно правдиво (Виктор — преступник, как и сама Екатерина), то и признание Виктора (#4) тоже правдиво —> преступников трое (Константин, Екатерина, Виктор). Противоречие. Значит, Екатерина — свидетель, и Виктор — тоже свидетель.
Остаётся Дмитрий: он говорит «не Екатерина» — что соответствует истине. Значит, Дмитрий — преступник.
Ответ: преступники — Константин и Дмитрий.
Головоломка 5. Турнир — кто на каком месте?
Условие. По восьми условиям нужно расставить шестерых участников — Аню, Бориса, Веру, Гену, Диану и Егора — по местам с 1-го по 6-е.
Техника. Рисуем квадрат: участники по столбцам, места по строкам. Каждая ячейка означает «участник X на месте Y». Изначально все варианты открыты. Когда условие исключает вариант — ставим крестик, когда подтверждает — кружок. Чтобы не терять логику, поначалу вместо крестиков ставим номер условия — так видна цепочка рассуждений.
Обрабатываем условия пошагово.
1) Аня заняла место выше, чем Егор
Из этого условия следует, что место, занятое Аней не шестое, а Егором - не первое. Ставим крестики в строке 6, колонка А и в строке 1, колонка Е.
2) Гена занял место выше, чем Диана
Аналогично: крестики в (6, Г) и (1, Д).
3) Вера находится на 3-ем месте
Ставим кружок в (3, В). Заполняем крестиками оставшиеся клетки по строке 3 и колонке В - третье место уже никто занять не может и Вера не заняла другого (кроме 6-го) места.
4) Борис расположился в нижней половине
Крестики в (1, Б) и (2, Б) - Борис не занял 1-е или 2-е места. Отсюда следует что 1 и 2 места поделили между собой Аня и Гена. А Борис, Диана и Егор - 4-6 места.
5) Гена — в тройке призёров
Крестики в (4, Г) и (5, Г)
6) Диана и Егор расположились рядом
Из квадрата видно, что ни Диана, ни Егор не могут занять 1-е и 3-е место. Поэтому второе место тоже заняли не они. → крестики в (2, Д) и (2, Е).
Только Аня и Гена могут претендовать на 1-2 места. Поэтому мы можем зачеркнуть 4 и 5 места для Ани.
Вместо крестиков сначала ставятся номера ходов, чтобы можно было отследить динамику. На следующих картинках уже поставленные цифры заменяются крестиками для большей наглядности
7) Борис следует сразу за Егором
Из это следует, что Егор и Борис могут занимать либо 4 и 5, либо 5 и 6 места соответственно. Добавляем сюда не до конца обработанное условие 6. Только 4-е место у Дианы позволяет его выполнить.
8) Аня уступила Гене
Это условие показывает нам как поделились 1-2 места. Окончательный расклад следующий:
Итог:
Гена — 1-е, Аня — 2-е, Вера — 3-е, Диана — 4-е, Егор — 5-е, Борис — 6-е.
Показанная техника масштабируется и может применяться для более сложных задач. Когда параметров становится три и больше, вместо одного квадрата используют несколько — по одному на каждую пару измерений
Рассмотрим более сложную трёхмерную задачу, не вошедшую в разбираемую статью.
Головоломка 6. Студенты, города, профессии (трёхмерная)
Условие. Четверо студентов — Аня, Борис, Вера, Гена — приехали учиться из разных городов (Мурманск, Казань, Тула, Ялта), подружились, но выбрали разные специальности (программист, финансист, юрист, филолог). По условиям нужно восстановить: кто откуда и кто на кого учится.
Условия
1) Программиста тянет на каникулах в гости к друзьям в непривычные для него места: то туда, где непривычно холодно, то туда где совсем для него жарко.
2) Гена приехал из Казани.
3) Борис учится на профессию, не работающую активно с цифрами.
4) Финансист родом из средней полосы.
5) Программист приехал из города-миллионника.
6) Борис учится не на юриста.
7) Аня приехала не из города, который расположен у моря.
8) Филолог рад был уехать на время из своего холодного края.
Решение
Задача 3-хмерная: Студент — Специализация — Город.
Для отражения попарных связей используем 3 квадрата (таблицы) - см. ниже.
Разбираем условия по очереди.
1) Программиста тянет в непривычные для него места: то туда, где непривычно холодно, то туда где совсем для него жарко.
Следовательно, Мурманск и Ялта - явно не являются его родным городом. Ставим единички как предшественники крестиков.
2) Гена приехал из Казани.
В ячейку (Гена, Казань) ставим нолик. А в строку и колонку, проходящие через эту ячейку ставим 2.
3) Борис учится на профессию, не работающую активно с цифрами.
Для Бориса ставим 3 в профессиях Финансист и Программист.
4) Финансист родом из средней полосы.
Для финансиста ставим 4 для городов Мурманск и Ялта.
5) Программист приехал из города-миллионника.
Из рассматриваемых четырех городов только Казань имеет население свыше миллиона человек. Ставим нолик в ячейку (Программист, Казань) и 5-1 на пересекающих её колонке и строке.
Теперь мы имеем связки: Программист - Казань и Гена - Казань. Следовательно, справедлива новая связка: Программист - Гена. Ставим в эту ячейку нолик и дополнительные 5-2 на пересекающих её строке и столбце.
Но и это еще не всё. У финансиста среди городов остался только один вариант: Тула. Смело ставим в ячейку (Финансист, Тула) нолик и добавляем 5-3 для зависимых ячеек.
6) Борис учится не на юриста.
Для Бориса осталась только одна профессия: Филолог. Ставим туда нолик и добавляем 6 как сопутствующие заменители крестиков.
7) Аня приехала не из города, расположенного у моря.
Это условие отказывает Ане в Мурманске и Ялте. Для неё остается только Тула. Ставим кружок и дополнительные 7-1.
Теперь имеем связки: Финансист - Тула и Аня - Тула, значит добавляем кружок для Финансист - Аня и дополнительные 7-2.
А ещё оказалось, что для Веры осталась только одна профессия - Юрист. Ставим туда кружок.
8) Филолог рад был уехать на время из своего холодного края.
Приписываем Филолога к Мурманску - кружок и сопутствующие 8-1.
Теперь имеем связки: Филолог - Мурманск и Филолог - Борис. Добавляем кружок в ячейку Борис - Мурманск и сопутствующие 8-2.
Далее заполняем кружками 2 оставшиеся ячейки: Юрист - Ялта и Вера - Ялта.
Ответ:
Аня - Финансист - Тула.
Борис - Филолог - Мурманск.
Вера - Юрист - Ялта.
Гена - Программист - Казань.
Сетка не делает вас умнее — она освобождает голову от лишней нагрузки. Пока одни пытаются «держать всё в уме», другие просто чертят квадрат(ы) и двигаются по шагам.
Именно технику сетки применял Шерлок Холмс — исключить все неправильные варианты. Оставшийся, сколь бы невероятным он не казался — правильный.
Техника сетки по шагам
1) Ставим крестик там, где условие не выполняется. Для визуализации и проверки логики (при обнаружении ошибки), лучше поначалу вместо крестиков ставить номер условия, из которого крестик появился.
2) Если решение найдено — ставим нолик и крестики в строке и колонке, проходящие через этот нолик. Один найденный нолик убивает сразу несколько вариантов. Не упускайте этот момент — именно здесь сетка показывает свою мощь.
3) Ищем неявные связки. В случае 3-мерной задачи — если обнаружились 2 связки с одной и той же категорией, значит, можно обозначить и третью, оставшуюся связку. Это сильно продвигает решение головоломки.
4) Когда для строки (или столбца) остаётся только два-три варианта, можно уже делать предположения и проверять их цепочкой последствий.
5) Не пытайтесь обработать все условия одновременно. Берите по одному, фиксируйте результат — и только потом переходите к следующему. Иногда одно условие открывает вывод, который раньше был недоступен — потому что нужный крестик ещё не стоял. Именно поэтому фиксируйте условия, которые были обработаны не до конца. Возвращайтесь к ним при каждом шаге — возможно уже появилась новая информация, которая позволит "сыграть" висящему условию.
6) Если задача кажется решённой, пройдитесь по итогам ещё раз — проверьте выполнение всех условий.
Интересно, что этот метод используют не только для головоломок. Любое решение, где есть набор непротиворечивых вариантов и ограничений, поддаётся логике сетки: выбор между несколькими предложениями, распределение задач, анализ версий. Инструмент шире, чем кажется.
Для применения техники сетки в решении логических головоломок можно использовать специально созданную программу.