Как найти кота?

Есть 5 коробок и в одной из них он сидит.

Как найти кота?

Во время переезда в квартире появилось 5 пустых коробок, и кот стал в них спать.  На каждой коробке написана своя цифра, от 1 до 5, а сами коробки стоят в ряд по порядку.

Наутро кот вылезает из очередной коробки, а на ночь переходит спать в соседнюю справа или слева, которая стоит рядом с той, где он ночевал в прошлый раз. Каждое утро можно открыть только одну коробку, чтобы проверить, есть ли там кот. 

Есть ли такая стратегия, чтобы гарантированно найти кота в какое-нибудь утро, если мы не знаем, в какую коробку он пошёл спать в первую ночь?

Не ищите логику, давайте просто решать.

Так как кот всегда переходит в соседнюю коробку, то он по очереди спит в чётных и нечётных коробках. Используем это при решении.

Кот начал с чётной коробки

Это значит, что в первую ночь кот уснул в коробке 2 или 4. Допустим, мы утром открываем коробку 2. Если кот там — мы выиграли. Если кота там нет, значит, он точно в коробке 4. А раз он точно в коробке 4, значит, следующей ночью он пойдёт  спать в коробку 3 или 5.

Вторым утром проверяем коробку 3. Если кот спит там — мы выиграли. Если кота там нет, значит, он спит в коробке 5. А это значит, что следующей ночью он точно будет спать в коробке 4, потому что у коробки 5 нет других соседей. 

На третье утро открываем коробку 4 и находим кота. Победа.

Кот начал с нечётной коробки

Если мы прошли наш алгоритм 2–3–4 и не нашли кота, это значит, что он начал спать с нечётной коробки. Получается, что в первое утро кот спал в нечётной, во второе — в чётной, а в третье — снова в нечётной. Выходит, что на четвёртое утро кот снова будет в чётной коробке — 2 или 4. 

Но у нас уже есть стратегия нахождения кота в чётных коробках, мы только что её описали в предыдущем разделе. Значит, нам достаточно применить её ещё раз и снова открыть по утрам коробки 2, 3 и 4, чтобы точно найти кота.

Зачем искать котов?

Котов — незачем. Коты, когда захотят, сами найдутся. 

Но строить логически непротиворечивые и экономичные алгоритмы — это хлеб разработчиков. Развивайте алгоритмическую мышцу, и станете алгоритмическим качком.

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
А вы читали это?
Задача про таблетки и злого гения
Задача про таблетки и злого гения

Как логика и ограничения помогают найти банку с отравленными таблетками.

medium
Задача про секс и математику
Задача про секс и математику

Могут ли логика, математика и статистика привести к созданию новой крепкой семьи?

medium
Задача про безумного рекрутера и большой офис
Задача про безумного рекрутера и большой офис

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

easy
Сложная логическая задача на повышение
Сложная логическая задача на повышение

Как одним вопросом получить ОЧЕНЬ МНОГО информации.

easy
Задача Эйнштейна
Задача Эйнштейна

Учёный утверждал, что только 2% людей могут решить в уме эту задачу (так говорят в Википедии).

hard
Задача на импортозамещение
Задача на импортозамещение

Немного логики, капля математики и много любви к российским фермерам.

medium
Задача про программистов и угощение в баре
Задача про программистов и угощение в баре

Почувствуйте себя барменом

easy
Как заполнить продуктами целый шкаф
Как заполнить продуктами целый шкаф

Это сложно, но можно

medium
Решаем кодом задачу про безумного рекрутера
Решаем кодом задачу про безумного рекрутера

Пусть рассудит машина.

medium
easy
[anycomment]