как сделать бинарный поиск в одной модели лжи?

вопрос звучит так: есть отсортированный список из n чисел. Учитывая x, найдите число, которое равно x в отсортированном списке. Здесь мы предполагаем, что x действительно находится в списке. Существует оракул, который может ответить "да" или "нет" на ваш вопрос "является ли x>=y?". В отличие от обычного двоичного поиска, оракулу разрешается солгать один раз на ваш вопрос. Самый наивный способ решения этой проблемы - задать оракулу каждый вопрос дважды. Если два ответа совпадают, вы знаете, что оракул не лжет. Этот алгоритм нужно сравнить 2log_2(n) раз. Но в этом вопросе меня просят найти алгоритм, который может найти x, используя только log_2(n)+o(logn) сравнений.

Я очень старался, но не смог. Может ли кто-нибудь дать мне совет, как решить эту проблему? Спасибо.

10
задан little_math 30 January 2012 в 03:08
поделиться