Антон Шевчук // Web-разработчик

Логическая задачка // Company


Задачка на сообразительность, впору задавать на собеседовании.

Задача

Вы находитесь в аэропорту и опаздываете на собеседование в Google, ваш мобильник сел, и вам приходится вызывать такси из таксофона находящемуся внутри здания. После этого вы идете на стоянку таксистов и должны найти именно вашего таксиста, так как только он повезет вас короткой дорогой и вы не опоздаете. У таксиста есть табличка с маркером, вопрос: Что вы должны попросить написать таксиста на табличке, чтобы опознать его.

Условие 1: На стоянке все остальные таксисты — очень логичны и меркантильны, и узрев действия вашего таксиста повторят их.

Условия 2: Вы разговаривали с оператором, который еще не знал какой таксист будет вас обслуживать, то есть вы не можете узнать о нем ничего.

Ответ

Поскольку задачка моя, то и о правильности ответов судить мне, пишите комментарии (и пропустите следующий абзац, если не хотите обламывать себе кайф от решения ;)

Для начала немного о неправильных решениях:

  • Если вы попросите написать ваше имя — все таксисты напишут тоже самое
  • Попросите написать номер своей машины — таксисты быстро сообразят, и напишут каждый свой
  • Попросите написать координаты на стоянке — все остальные тоже напишут свои

А теперь несколько возможных вариантов ответа:

Одно из решений — водитель должен написать MD5(номер машины + соль которую я сообщу по телефону), но как вы будете это вычислять (да и таксист тоже).

Второй вариант — водитель должен написать номер машины зашифрованный Виженером, ключ вы сообщаете по телефону. (таксисты могут конечно успеть расшифровать, но тогда вам надо поторопится).

Третий вариант — водитель должен написать некую контрольную сумму из номера его машины и ключевого слова которое вы сообщите.

А теперь вторая задачка, каким образом можно ускорить поиск таксиста, что он должен написать?
А что если все таксисты слышат, что говорит оператор искомому таксисту?

© Антон Шевчук 2007-2016