Как мне найти книгу в большой библиотеке?

В ходе подготовки к собеседованию я нашел следующий вопрос:

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

Вы смотрите, где книга предполагает из каталога карт, и отправился полке X, чтобы найти его.

Однако книги там нет.

Есть только один человек, который может отвечать на вопросы, libarian, но он отвечает только да/нет ответы. Кроме того, его ответы могут не быть правильным.

Какова ваша стратегия поиска этого забронировать?

Как бы вы ответили на этот вопрос? Какие методы поиска вы используете?

Ответ 1

  • Попросите интервьюера получить дополнительную информацию о библиотекаре и оттуда. В частности, выясните, восприимчив ли он к взяточничеству (я имею в виду библиотекаря, но подумаю, что это может пойти и на интервьюера).
  • Двойная проверка за немые ошибки (неправильная карта, неправильная полка, "661-88" - "88-199" и т.д.).
  • Поиск в ящике заемных книг. Если он был заимствован, отметьте дату платежа и вернитесь позже или обратите внимание на домашний адрес заемщика и перейдите к плану B.
  • Посмотрите в окрестности, несколько книг в любом направлении и полки сверху и снизу, если они были неправильно восстановлены.
  • Проверьте столы, полы, копировальные аппараты и обратные тележки.
  • Ищите пробел на полке. Если есть пробел в нужном месте, то, по крайней мере, вы знаете, что ищете в нужном месте. Если нет пробела, то ищите книгу на этой полке, которая не принадлежит - кто-то, возможно, поменял их по ошибке. Если нет такой неуместной книги, то, возможно, книга никогда не была на этой полке, см. Ниже.
  • Ищите пыль на полке. Это может указывать, была ли удалена книга за последний месяц. Аналогичным образом проверьте индексную карту на наличие признаков возраста. Блок-схема немного осложнилась, но книга, возможно, была потеряна много лет назад.
  • Проверьте индексную систему: если книга не имеет нужного номера для ее объекта/названия/автора/независимо от того, есть ли опечатка на карточке индекса, и вы должны сами подсчитать правильный номер, чтобы узнать, где книга действительно есть.
  • Просто выходите и покупайте проклятую книгу, ваше время более ценно, чем это.

Ответ 2

Используйте Binary search, чтобы сузить местоположение книги.

Каждый вопрос должен сузить поле поиска наполовину.

"Является ли книга этой половиной библиотеки?" (укажите в правильном направлении).

Будет работать как начальный вопрос.

Вы также можете использовать The Knight and the Knave как часть вашего метода опроса человека. Ваши первые 5 вопросов (для установления базового уровня) могут быть о том, что вы знаете ". Оттуда вы можете определить его коэффициент ошибок. После этого вы можете использовать вопросы Binary Search-esque, чтобы определить, где находится книга.

Ответ 3

Шаг A: Откалибруйте своего библиотекаря.

Выберите случайную книгу в библиотеке, идите к случайному месту, а затем спросите библиотекаря, если книга (чье местоположение вы знаете) находится слева от вас. Продолжайте тестировать библиотекаря, пока не получите хорошую оценку вероятности, p, что библиотекарь правильно отвечает. Заметим, что если p < 0.5, тогда вам лучше следовать за противоположностью того, что говорит вам библиотекарь. Если p = 0,5, то откажитесь от Библиотекаря - ее ответы не лучше, чем переворот монеты.

Если вы обнаружите, что p зависит от заданного вопроса (например, если библиотекарь всегда правильно отвечает на некоторые вопросы, но другие вопросы всегда ложно), перейдите к шагу B1.

Шаг B1: Если p == 0.5 или p зависит от заданного вопроса, начните думать вне поля, как предлагает Beta.

Шаг B2: Если p < 0.5, отмените ответ, который дает библиотекарь, и переходите к этапу B3.

Шаг B3: Если p > 0,5: выберите N. Если p близко к 1, то N может быть низким числом, например 10. Если p очень близко к 0,5, выберите N большим, например 1000. Правое значение N зависит от p и насколько вы уверены, что хотите быть.

Спросите библиотекаря тот же вопрос N раз ( "Я ищу книгу слева" ). Предположим на данный момент, что любой ответ дается чаще - это "правильный ответ". Вычислите средний ответ, назначив 1 для "правильного ответа" и 0 для неправильного ответа. Назовите это "наблюдаемым средним".

Ответы похожи на розыгрыши из коробки с двумя билетами (правильный ответ и неправильный ответ). Стандартным отклонением выборки из N ничьих будет sqrt (pq), где q = 1-p. Стандартная ошибка среднего составляет sqrt (pq/N).

Возьмем нулевую гипотезу как p = 0.5 - что библиотекарь просто дает случайные ответы. "Ожидаемый средний" (предполагающий нулевой гитезис) равен 1/2.

Z-статистика - это (observed average - expected average)/(standard error of the average) = (observed average - 0.5)*sqrt(N)/(sqrt(p*q))

Z-статистика следует нормальному распределению. Если z-статистика равнa > 1.65, то вы имеют примерно 95% вероятность того, что средний ответ Библиотекаря статистически значительное. Если после N вопросов z будет меньше 1,65, повторите шаг B3, пока не получите статистически значимый ответ. Обратите внимание: чем больше вы выберете N, тем больше будет z-статистика и тем легче получить статистически значимые результаты.

Шаг C: Как только вы получите статистически значимый ответ, вы действуете на него (используя идею двоичного поиска Джорджа Стокера) и надеетесь, что вам не было статистически неудачно.:)

PS. Хотя библиотека может быть трехмерной, вы можете играть в игру Binary Search по оси x, затем по оси y, затем по оси z. Таким образом, трехмерную задачу можно свести к решению 3 (одномерных задач).

Ответ 4

здесь начальная точка: предположим, что библиотека использует десятичную систему Дьюи (но любая система классификации может быть заменена). Вопрос 1: книга в 100-х годах? Вопрос 2: книга в 200-х годах? .. книга между 50 и 150? это книга между 150 и 250?

Ответ 5

Зависит от того, с кем вы проводите собеседование:

Правительство (не-правоохранительные/военные) - нанимает бесконечное количество сотрудников для проверки каждого места в библиотеке. Затем нанимайте бесконечное количество младших менеджеров для управления этим персоналом, добавляйте бесконечное количество менеджеров среднего звена и т.д.

Крупная корпорация - такая же, но используйте неоплачиваемых стажеров.

Правительство (правоохранительные органы/военные) - возьмите библиотекаря, примените tazer или waterboarding, пока не обнаружит место нахождения книги.

Небольшая компания (веб-запуск 2.0) - блог о расположении книги, пока кто-то не скажет вам.

Малая компания (реальный бизнес) - попробуйте другую библиотеку/книжный магазин.

Ответ 6

Это мошенничество, чтобы спросить, принимает ли библиотекарь команды? Если он это сделает, просто скажите ему, чтобы он нашел книгу и вернул ее вам.

Ответ 7

Как бы вы ответили на этот вопрос?

"Спасибо за ваше время". И я встал и вышел из комнаты для интервью. Мне не интересно работать с людьми, которые думают, что просить глупые загадки в interrview более полезно, чем просить меня написать какой-то код или продемонстрировать, как я планирую проект или возглавить команду.