З огляду на упереджене однобічне відмирання, як можна рівномірно генерувати випадкове число в діапазоні ? Розподіл ймовірностей граней штампів невідомий. Все, що відомо, це те, що кожне обличчя має ненульову ймовірність і що розподіл ймовірностей однаковий для всіх кидків (зокрема, кидки незалежні). Це очевидне узагальнення справедливих результатів з несправедливою смертю .
Поклавши це з точки зору інформатики, ми маємо оракул, що представляє рулони: такий, що є ненульовим і не залежить від . Ми шукаємо детермінований алгоритм , параметризований (тобто може робити дзвінки до ) таким чином, що . Алгоритм повинен закінчуватися з ймовірністю 1, тобто ймовірність того, що робить більше викликів повинна сходитися до як .
Для (імітуйте справедливу монету від монети, перевернуту з упередженою монетою) існує відомий алгоритм:
- Повторюйте “переверніть двічі”, поки два кидки не виберуть чітких результатів ((голови, хвости) або (хвости, голови)). Іншими словами, цикл для до
- Повертайте 0, якщо остання пара гортань була (голови, хвости) та 1, якщо вона була (хвости, голови). Іншими словами, поверніть де - індекс, на якому цикл припинився.
Спрощений спосіб зробити неупереджений штамб з упередженого способу - використовувати метод розкрутки монети, що розгортається, для побудови справедливої монети та побудови справедливої штампу з відбором відторгнення, як у Unbiasing послідовностей . Але чи це оптимально (для загальних значень розподілу ймовірностей)?
Зокрема, моє запитання таке: що таке алгоритм, який вимагає найменшої очікуваної кількості дзвінків до оракула ? Якщо набір доступних очікуваних значень відкритий, яка нижня межа і який клас алгоритмів, що сходиться до цієї нижньої межі?
У разі різних сімейств алгоритмів є оптимальними для різних розподілів ймовірностей, давайте звернемо увагу на майже чесних кісток: Я шукаю алгоритм або сімейства алгоритмів , які оптимально підходить для розподілів таких , що для деяких .