Встречаются 2 программиста загадка
Обновлено: 24.12.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.
Читайте также: