Предположим, что у нас есть черный ящик который мы можем запросить и сбросить. Когда мы сбрасываем , состояние для устанавливается произвольно выбранному элементу из набора где фиксировано и известно для данного . Для запроса предоставляется элемент (предположение) из , а возвращаемое значение равно . Кроме того, состояние для устанавливается равным значению , где выбирается случайным образом изе е С е { 0 , 1 , . , , , П - 1 } п е е х { 0 , 1 , . , , , n - 1 } ( f S - x )
Делая равномерно случайные догадки с каждым запросом, можно было бы ожидать сделать догадок, прежде чем получить с дисперсией (заявлено без доказательства).
Может ли алгоритм быть спроектирован так, чтобы он работал лучше (т. Е. Создавал меньше догадок, возможно, с меньшим разбросом в количестве догадок)? Насколько лучше это сделать (т. Е. Каков оптимальный алгоритм и какова его производительность)?
Эффективное решение этой проблемы может иметь важные последствия для экономии при стрельбе по кролику (ограниченному прыжками по круговой дорожке) в темной комнате.
Ответы:
Прежде всего, я предполагаю, что
вы на самом деле имеете в виду
В противном случае не совсем ясно, что всегда выполняется и как именно ведет себя.еS∈ { 0 , . , , , n - 1 } еS± к
Используя это, проблема в основном сводится к тому, чтобы «пропустить как можно больше». Заметьте, что чем ближе мы стреляем в кролика, тем больше хмеля он делает; в крайнем случае мы имеем . Это приводит к равномерному переходу между и , что в основном снова полностью рандомизирует положение кролика. С другой стороны, если мы пропустим настолько сильно, насколько это возможно - из-за смещения , кролик фактически не двигается вообще (!), И черный ящик фактически обновляет нас на этот факт. Поэтому мы можем просто развернуться и пристрелить кролика.еS- х = ± 1модификацияN - ( ⌊ n / 2 ⌋ ± 1 ) ( ⌊ n / 2 ⌋ ± 1 ) еS- хмодификацияn = ⌊ n / 2 ⌋
Нам остается найти процедуру пропуска в каждом кадре. Я предлагаю простой «бинарный поиск». (Я удобно опущу округление.) Это происходит примерно следующим образом:
Каждый шаг требует ожидаемого времени для успешного завершения и делит пополам пространство поиска, что дает общее ожидаемое количество шагов.2 = O ( 1 ) O (журналн )
источник