Встречаются 2 программиста загадка

Обновлено: 04.10.2024

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

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

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

Арка­дий: Я не знаю, когда у Кати день рож­де­ния, но я знаю, что Борис тоже не зна­ет.
Борис: Хе-хе, сна­ча­ла я тоже не знал, когда у неё день рож­де­ния, но теперь знаю.
Арка­дий: А, ну теперь и я знаю.
Борис: Само собой.

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

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

Исключаем одинаковые B и C

Из последнего примера мы видели, что B и С не могут быть одинаковыми в принципе, неважно, чётными или нечётными, поэтому остаются только два варианта:

B = 6, C = 8 или B = 8, C = 6.

Решение

Если вам до сих пор кажется, что эта задача — полная дичь, мы вас понимаем. И всё-таки у неё есть чёткое, логичное и точное решение.

Суть его в том, что каждый ответ второго — уточнение или подсказка для решения. И первый задавал вопросы до тех пор, пока все подсказки не привели его к правильному ответу. Давайте проследим за ходом его мыслей.

Первый ответ говорит нам о том, что всего детей — трое. Хорошо, но явно недостаточно для того, чтобы вычислить возраст.

Второй ответ говорит о том, что в сумме детям 13 лет. Давайте запишем все возможные комбинации возрастов, которые подходят под это условие:

Остальные комбинации получаются из этих простой перестановкой возрастов.

Третий ответ — произведение возрастов равно числу окон. Кажется, что это вообще никак нам не помогает, потому что мы не знаем количества окон в доме, — но это не так. Если бы этого ответа было достаточно, то первый бы сразу назвал возраст, но раз он этого не сделал, значит, информации было недостаточно.

Давайте посмотрим на произведения всех комбинаций возрастов и попробуем понять, что же с ними не так:

1 × 6 × 6 = 36

2 × 2 × 9 = 36

Раз этого ответа про количество окон оказалось недостаточно, значит в доме было столько окон, что под это число попадали сразу несколько результатов произведений. Мы выделили их в таблице. Все остальные числа давали бы однозначный ответ про возраст, а для числа 36 есть несколько вариантов, поэтому первый сказал, что этого ему недостаточно.

Четвёртый ответ — старший сын рыжий. Цвет волос нам не так важен, как количество старших сыновей. Так как «старший сын» означает, что он такой старший один, значит, вариант 1 — 6 — 6 нам не подходит, потому что в нём старших сыновей двое. Остаётся только один вариант: 2 — 2 — 9.

Ответ: старшему сыну 9 лет, двум другим — по 2 года.

Подписывайтесь на наш канал , чтобы научиться находить общий язык с коллегами.

Решение

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

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

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

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

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

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

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

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

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

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

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

Следующая загадка

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

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

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

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

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

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

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

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

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

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

Следующая загадка

Один программист пришёл к другому и, немного выпив, говорит:

— Загадай любое натуральное число X!

— А теперь придумай три любых целых числа от 6 до 8 включительно.

— Придумал, и что дальше?

— А теперь умножь своё начальное число X на первое из них, прибавь второе и отними третье. Сколько у тебя получилось?

— Ха, а я знаю, какие ты числа загадал!

— Что, все четыре числа вычислил?!

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

Обозначим три загаданных числа от 6 до 8 как A, B и C. Если мы сделаем всё, как написано в задаче, то получим равенство: A × X + B − C = 164.

Из этого получим X:

X = (164 − B + C) / A

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

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

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

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

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

Следующая загадка

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

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

Итак, задача. Встречаются два программиста, которые давно друг друга не видели. У них происходит такой диалог:

— Я слышал, у тебя дети появились.

— И сколько им лет?

— Ну. В сумме — тринадцать!

— Хм. Ты снова загадками говоришь? Ну ладно. Что ещё можешь сказать?

— Если возрасты перемножить, получится столько же, сколько окон вон у того дома.

Программист считает окна и прикидывает варианты.

— Но этого до сих пор недостаточно для ответа!

— Могу добавить, что мой старший сын — рыжий.

— Ну теперь совсем другое дело. Им . (далее следует ответ).

Сколько же лет им было? И как первый смог вычислить возраст?

Проверяем оставшиеся варианты

Если B = 6 и C = 8, то в числителе получается так: (164 – 6 + 8) = 166. Но 166 не делится нацело ни на 6, ни на 8 (возможные значения A), значит, этот вариант можно исключить.

Получается, что остаётся только пара B = 8 и C = 6: (164 – 8 + 6) = 162. Число 162 нацело делится только на 6: 162 / 6 = 27, значит, A = 6, а второй программист загадал число 27:

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

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

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

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

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

Исключаем число 7

Если A = 7, то числитель нашей дроби должен нацело делиться на 7, потому что X не может быть дробным (по условию X — натуральное число). Числа, близкие к 164, которые делятся на 7 — это 161 и 168.

Чтобы получить 161 в числителе, числа B и C должны отличаться друг от друга на 3, а это невозможно, потому что максимальная разница равна 8 − 6 = 2.

Чтобы получить 168 в числителе, числа B и C должны отличаться друг от друга на 4, а это тоже невозможно, потому что максимальная разница равна 8 − 6 = 2.

Значит, A точно не равно 7. Запомним это.

Если число A точно не 7, то оно чётное — 6 или 8. Это значит, что числитель (164 − B + C) тоже чётный, чтобы в результате деления получилось целое число. А это возможно, если числа B и C оба чётные или оба нечётные.

Если числа B и C оба нечётные, то это возможно только в случае, если они оба равны 7. В этом случае −B + C = 0, и в числителе остаётся только 164, которое нам предстоит разделить на 6 или 8. Но 164 не делится нацело ни на 6, ни на 8, значит, они тоже не равны 7.

Читайте также: