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

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

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

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

  • 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
Самые странные, хитрые и неожиданные задачи про программистов и для программистов
Самые странные, хитрые и неожиданные задачи про программистов и для программистов

Погружаемся в мир нестандартной логики

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

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

medium
Задача про ниндзя и разведчика
Задача про ниндзя и разведчика

Победитель может быть только один.

medium
Задача про семейный быт
Задача про семейный быт

Что будет, если спрятать ужин.

medium
Карантинная задача на тригонометрию
Карантинная задача на тригонометрию

Соблюдай дистанцию, или квадрат катета!

easy
hard