суббота, 19 июня 2010 г.

Человек и паравоз

Самая старая из моей коллекции задачек для программистов и самая любимая.

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

Задача:
Молодой человек спешит на свидание к возлюбленной, живущей за горой. Ему нужно пройти через тоннель под горой.
Зайдя в тоннель и пройдя четверть пути, он слышит гудок догоняющего его паровоза. Но сила любви тянет его вперед и он продолжает путь.
К выходу из тоннеля они с паровозом приходят одновременно.
Известно так же, что если бы молодой человек пошел назад, навстречу поезду, то и там бы они с паровозом встретились строго на входе.

Вопрос: как соотносятся скорость паровоза и скорость влюбленного?

Как правило, я даю несколько минут на размышление и смотрю, что делает человек, как решает задачу.
Если решение не найдено и человек не начинает рассуждать вслух, то я даю 10 минут и ухожу, якобы по делам. Как правило, это происходит, если человек пытается найти решение через систему уравнений.

Конечно, смысл задачи не в том, что бы человек нашел правильный ответ, а понять, как он решает задачу, как подходит. За годы использования этой задачи на собеседованиях я узнал порядка 6 разных способов решения.

Дальше - спойлер решения. =)

Самым оригинальным (и самым быстрым!) вариантом решения был такой ход рассуждений:
- Предполагаем,что ответом является натуральное число.
- Проверяем ответ "1" - не подходит
- Проверяем ответ "2" - подходит, решение найдено

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

Как правило, люди приходят на собеседование без ручки с бумажкой. Перед этой задачей я убираю бумагу так, что бы ее нужно было попросить передать, хоть она и видна.
Есть люди, которые стесняются это делать. В команде им будет тяжело.

Комментариев нет:

Отправить комментарий