Dore: Ogre

Задача для интервью

Жена установила, что Экспедия показывает несовпадающие множества вариантов полетов из Чикаго в Тбилиси, если ввести в одном случае двух взрослых, а в другом случае одного взрослого и одного ребенка. Причем два взрослых выходят дешевле. Спрашивается: если лететь требуется двум взрослым с тремя детьми, и возраст детей требуется указывать как целые числа от 1 то 17 включительно, то сколько вариантов поиска необходимо проверить?
Скорее всего, при попытке купить "более дешевую" пару взрослых билетов, выяснится, что их уже нет по этой цене.
Экспедия кэширует у себя результаты запросов, и не посылает нового, если достаточно недавно такой же запрос уже был.
Поскольку билеты на детей запрашивают значительно реже, то такого запроса в кэше нет, и на него был дан свежий ответ. А на запрос про двух взрослых - устаревший, потому что такой запрос сравнительно недавно был.
Хитро придумано! Нет, по крайней мере наиболее удачный вариант возможно забронировать, еще не знаю, можно ли купить окончательно.
У экспедии уже много лет нет бронирования. Единственное, что можно сделать, это купить билеты, полностью заплатив за них, и потом в течении 24 часов отказаться, если передумал. Но выкупаются они с самого начала.
Нет, ничего такого не произошло - билеты купились и пришло подтверждение.
Может, и ошибка в Экспедии :)
А может, у них какие-то условия при поездке с детьми по умолчанию высталяются, отличные от тех, что при поиске для взрослых.
Например, не больше 2 пересадок или что-то такое.
Экспедия это агрегатор. Они дают авиакомпаниям API request - "есть ли у вас билеты для N взрослых, M детей такого-то возраста и K детей такого-то, и по какой цене?", что авиакомпании возвращают, то Expedia и показывает. Плюс наценка.

Edited at 2018-03-04 05:05 am (UTC)
И не видит целых рейсов. Если летишь с ребенком, самолет существует, а если нет - то нет. Без детей не пускают, что ли?
Вы как будто поисковых систем никогда не видели. У вас наивное предположение, будто бы в изначальный matching set (который потом дополнительно фильтруется ранжируется и из него выбираются лучшие N вариантов) входят все возможные рейсы :)

Конечно же, не входят. Мало того, и не должны входить. Потому что оценочная функция поисковика - это не "настолько полный список он даёт", а "сколько денег зарабатывает компания". Где-то близко ко второму находится "субъективная оценка людей, хорошо ли ищет". Но она находится очень далеко от первого.
Я бы с вами согласился, если бы писать не так, как в моем предположении, было бы проще, или если бы, при приложении тех же усилий, зарабатывалось бы больше денег. Но исходя из того, что мы знаем о программировании, таких возможностей не просматривается. Правильное поведение в данном случае совпадает с самым простым в реализации, кроме как на все запросы выдавать статическую страницу "авиационного сообщения между данными городами не существует".
Любопытства ради: как сейчас удобно добираться из Чикаго в Тбилиси? В голову приходит мало вариантов с одной пересадкой - Доха, Дубаи, и, неожиданно, Варшава.
Один вариант, с двумя взрослыми и тремя детьми. вы же не хотите разными рейсами лететь?
Так никто же не запрещает найти взрослые билеты, а потом купить их детям.
Обычно с детьми ищутся места рядом, а одних взрослых можно в разных концах салона посадить