Задача про Катю и двух программистов

Немного о том, как знакомятся программисты.

Задача про Катю и двух программистов

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

  • 15 мая,
  • 16 мая,
  • 19 мая,
  • 17 июня,
  • 18 июня,
  • 14 июля,
  • 16 июля,
  • 14 августа,
  • 15 августа,
  • 17 августа.

Затем она сказала Аркадию месяц своего рождения, а Борису — день. После этого состоялся диалог:

Аркадий: Я не знаю, когда у Кати день рождения, но я знаю, что Борис тоже не знает.

Борис: Хе-хе, сначала я тоже не знал, когда у неё день рождения, но теперь знаю.

Аркадий: А, ну теперь и я знаю.

Борис: Само собой.

Как они снова это сделали?

Оставим за скобками, что они могли просто сообщить друг другу день и месяц.

Здесь нет никакой магии — чистая логика. Разберём диалог по репликам.

Аркадий: я не знаю, когда у Кати день рождения, но я знаю, что Борис тоже не знает

Аркадий знал только месяц, но был уверен, что Борис про месяц не догадается — рассмотрим это подробнее.

Если бы Катя назвала Борису 18-е или 19-е число, Борис бы сразу понял, что это 19 мая или 18 июня, потому что эти числа встречаются только один раз. Но Аркадий мог гарантировать, что Борис не знает точной даты, только в одном случае — если бы день рождения был в июле или в августе. Иначе есть риск, что Борису назвали 19-е число из мая или 18-е из июня.

Получается, что это не может быть май или июнь, иначе нет стопроцентной гарантии, что Борису не назовут 18-е или 19-е число. Остаются июль и август.

Борис: хе-хе, сначала я тоже не знал, когда у неё день рождения, но теперь знаю

На этом моменте у нас остались такие даты: 14 июля, 14 августа, 16 июля, 15 августа, 17 августа. Борис понял, что Аркадий исключил май и июнь, и это дало ему нужную подсказку по месяцу. Получается, что это было точно не 14 число, потому что оно встречается по одному разу в каждом оставшемся месяце, и ответ Аркадия бы ничего Борису не дал.

Остаются 16 июля, 15 августа и 17 августа. Именно среди них и есть день рождения Кати, месяц которого Борис однозначно определил по числу. Мы с вами пока его ещё не знаем, но Борис в этот момент его уже вычислил.

Аркадий: А, ну теперь и я знаю

После ответа Бориса Аркадий понял, что Борис оставил себе эти три даты и по числу догадался о месяце. Нам же вместе с Аркадием нужно сделать наоборот — по месяцу догадаться о числе.

16 июля, 15 августа, 17 августа.

По условию, Аркадий знает месяц, и раз он после ответа Бориса догадался о точной дате, то это был июль. Дело в том, что если бы Аркадию назвали август, то он бы не смог однозначно выбрать, 15 или 17 августа отмечается день рождения. А раз так, то остаётся июль, а единственное оставшееся число в июле — 16-е.

Получается, что день рождения Кати — 16 июля, а Борис и Аркадий снова получают приз за самые странные диалоги.

Но пошла ли она с кем-то из них на свидание?

Обложка:

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

Корректор:

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

Вёрстка:

Маша Климентьева

Вам может быть интересно
Коктейльная задача про доли и крепость
Коктейльная задача про доли и крепость

Ну, будем!

easy
Находчивый инженер в кафе
Находчивый инженер в кафе

Как логика побеждает разгильдяйство.

medium
Как стать контент-менеджером (и зачем)
Как стать контент-менеджером (и зачем)
easy
Сколько стоит флешка?
Сколько стоит флешка?

Математическая головоломка

easy
Откуда взялась лишняя долька шоколада?
Откуда взялась лишняя долька шоколада?

Задача про то, как незаметно съесть кусочек шоколада

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

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

easy
Как угадать число за 7 попыток: математический трюк
Как угадать число за 7 попыток: математический трюк

Простой математический трюк, который раскрывает мощь алгоритмов

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

Хватит ли интернета на всех?

medium
Детская задача про взвешивание с элегантным решением
Детская задача про взвешивание с элегантным решением

Попробуйте решить эту задачу, не решая 4 уравнения сразу

easy
hard