Следующая проблема возникла во время исследования, и она удивительно чиста:
У вас есть источник монет. Каждая монета имеет уклон, а именно вероятность того, что она упадет на «голову». Для каждой монеты независимо существует вероятность 2/3, что она имеет смещение не менее 0,9, а с остальной вероятностью ее смещение может быть любым числом в [0,1]. Вы не знаете предвзятости монет. Все, что вы можете сделать на любом этапе, это бросить монетку и понаблюдать за результатом.
Для данного n ваша задача состоит в том, чтобы найти монету с уклоном не менее 0,8 с вероятностью не менее . Вы можете сделать это, используя только O (n) бросков монет?
ds.algorithms
pr.probability
Дана Мошковиц
источник
источник
Ответы:
Ниже приведен довольно простой алгоритм броска .O(nlogn)
Предположим, что - это вероятность ошибки, к которой мы стремимся. Пусть - некоторая степень , скажем, между и (просто достаточно большие постоянные времена ). Мы поддерживаем кандидата набор монет, . Изначально мы поставили монеты в .1−exp(−n) N 2 100n 200n n C N C
Теперь для , сделайте следующее: Бросьте каждую монету в на раз (просто достаточно большая константа). Держите монеты с большинством голов.i=1,…,logN C D i = 2 i 10 10 N / 2 i
C Di=2i1010
N/2i
Доказательство основано на паре оценок Чернова. Основная идея заключается в том, что мы каждый раз вдвое уменьшаем количество кандидатов и, следовательно, можем позволить себе в два раза больше бросков каждой монеты.
источник