Логическая задачка // Company
Задачка на сообразительность, впору задавать на собеседовании.
Задача
Вы находитесь в аэропорту и опаздываете на собеседование в Google, ваш мобильник сел, и вам приходится вызывать такси из таксофона находящемуся внутри здания. После этого вы идете на стоянку таксистов и должны найти именно вашего таксиста, так как только он повезет вас короткой дорогой и вы не опоздаете. У таксиста есть табличка с маркером, вопрос: Что вы должны попросить написать таксиста на табличке, чтобы опознать его.
Условие 1: На стоянке все остальные таксисты — очень логичны и меркантильны, и узрев действия вашего таксиста повторят их.
Условия 2: Вы разговаривали с оператором, который еще не знал какой таксист будет вас обслуживать, то есть вы не можете узнать о нем ничего.
Ответ
Поскольку задачка моя, то и о правильности ответов судить мне, пишите комментарии (и пропустите следующий абзац, если не хотите обламывать себе кайф от решения ;)
Для начала немного о неправильных решениях:
- Если вы попросите написать ваше имя — все таксисты напишут тоже самое
- Попросите написать номер своей машины — таксисты быстро сообразят, и напишут каждый свой
- Попросите написать координаты на стоянке — все остальные тоже напишут свои
А теперь несколько возможных вариантов ответа:
Одно из решений — водитель должен написать MD5(номер машины + соль которую я сообщу по телефону), но как вы будете это вычислять (да и таксист тоже).
Второй вариант — водитель должен написать номер машины зашифрованный Виженером, ключ вы сообщаете по телефону. (таксисты могут конечно успеть расшифровать, но тогда вам надо поторопится).
Третий вариант — водитель должен написать некую контрольную сумму из номера его машины и ключевого слова которое вы сообщите.
А теперь вторая задачка, каким образом можно ускорить поиск таксиста, что он должен написать?
А что если все таксисты слышат, что говорит оператор искомому таксисту?