Как мне найти книгу в большой библиотеке?
В ходе подготовки к собеседованию я нашел следующий вопрос:
Вы находитесь в очень большой библиотеке, которая не имеет доступа к компьютеру, и вы ищет одну конкретную книгу.
Вы смотрите, где книга предполагает из каталога карт, и отправился полке 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 более полезно, чем просить меня написать какой-то код или продемонстрировать, как я планирую проект или возглавить команду.