Встречаются два программиста, которые давно друг друга не видели. У них происходит такой диалог:
— Я слышал, у тебя дети появились.
— Да, три сына.
— И сколько им лет?
— Ну… В сумме — тринадцать!
— Хм… Ты снова загадками говоришь? Ну ладно. Что ещё можешь сказать?
— Если возрасты перемножить, получится столько же, сколько окон вон у того дома.
Программист считает окна и прикидывает варианты.
— Но этого до сих пор недостаточно для ответа!
— Могу добавить, что мой старший сын — рыжий.
— Ну теперь совсем другое дело. Им… (далее следует ответ).
— Правильно!
Сколько же лет им было? И как первый смог вычислить возраст?
ПОМОГИТЕ ПЖЖЖЖ
Answers & Comments
Verified answer
Первый ответ говорит нам о том, что всего детей — трое. Этого явно недостаточно для того, чтобы вычислить возраст.Второй ответ говорит о том, что в сумме детям 13 лет. Все возможные комбинации возрастов, которые подходят под это условие:1 + 1 + 11 = 131 + 2 + 10 = 131 + 3 + 9 = 131 + 4 + 8 = 131 + 5 + 7 = 131 + 6 + 6 = 132 + 2 + 9 = 132 + 3 + 8 = 132 + 4 + 7 = 132 + 5 + 6 = 133 + 3 + 7 = 133 + 4 + 6 = 133 + 5 + 5 = 134 + 4 + 5 = 13Остальные комбинации получаются из этих перестановкой возрастов.Третий ответ. Если бы этого ответа было достаточно, то первый бы сразу назвал возраст, но раз он этого не сделал, значит, информации было недостаточно.Все комбинации возрастов1 × 1 × 11 = 111 × 2 × 10 = 201 × 3 × 9 = 271 × 4 × 8 = 321 × 5 × 7 = 351 × 6 × 6 = 362 × 2 × 9 = 362 × 3 × 8 = 482 × 4 × 7 = 562 × 5 × 6 = 603 × 3 × 7 = 633 × 4 × 6 = 723 × 5 × 5 = 754 × 4 × 5 = 80Если и этого ответа недостаточно значит кол-во окон в доме было столько , что под это число попадали сразу несколько результатов произведений. Все остальные числа давали бы однозначный ответ про возраст, а для числа 36 есть несколько вариантов, поэтому первый сказал, что этого ему недостаточно.Так как старший сын бывает только один, значит, вариант 1 — 6 — 6 нам не подходит, потому что в нём старших сыновей двое. Остаётся только один вариант: 2 — 2 — 9. Это означает что старшему сыну 9 лет, двум другим — по 2 года.
Ответ:Давайте представим возрасты детей в виде трех чисел: x, y, z.
Из диалога следует, что:
x + y + z = 13
x * y * z = k (некоторое число k)
Мы должны найти три числа, которые удовлетворяют этим условиям.
Теперь обратимся к фразе про рыжего сына. Если бы только один из сыновей был рыжим, то отец мог бы легко сказать, какому сыну принадлежит этот цвет волос, и мы бы знали, сколько лет этому сыну. Однако, так как в условии сказано, что старший сын рыжий, то он не может быть младше других детей, потому что в этом случае возрасты не могут быть уникальными.
Поэтому, старший сын должен быть либо самый старший, либо второй по возрасту. Но если он был бы вторым по возрасту, то нам осталось бы только две комбинации чисел (в зависимости от того, кто из оставшихся детей рыжий), а это не достаточно для однозначного определения возрастов.
Таким образом, старший сын должен быть самым старшим, и его возраст должен быть больше суммы возрастов оставшихся двух детей.
Теперь мы можем перебрать все комбинации чисел x, y, z, удовлетворяющих условиям x + y + z = 13 и x * y * z = k, и проверить, какое из них удовлетворяет условию о возрасте старшего сына.
Можно заметить, что кроме тривиального случая (1, 1, 11) все комбинации чисел будут иметь два числа, меньших 4. Однако, так как мы знаем, что старший сын должен быть самым старшим, это означает, что x, y, z должны быть равны 1, 2 и 10 (в каком порядке — не важно).
Проверяем, что эти числа удовлетворяют всем условиям:
1 + 2 + 10 = 13
1 * 2 * 10 = 20
Таким образом, детям было 1, 2 и 10 лет, и первый программист мог определить возраст, зная, что старший сын рыжий и его возраст больше суммы возрастов оставшихся двух детей.
Пошаговое объяснение: