З огляду на монету з невідомим зміщенням, ефективно генеруйте змінні з справедливої ​​монети


10

З огляду на монету з невідомим зміщенням p , як я можу генерувати змінні - якомога ефективніше - які розподіляються Бернуллі з вірогідністю 0,5? Тобто, використовуючи мінімальну кількість фліпів на генеровану змінну.


3
Просте рішення - перевернути монету два рази: Якщо це карта, то вона буде головою, якщо це карта її хвостами. В іншому випадку повторіть експеримент, поки не буде досягнуто одного з цих двох. T HНТТН
кардинал

1
@cardinal: Приємно! Чому б не додати відповідь?
Ніл Г

2
@Glen_b: Гаразд, але чи можна це зробити з мінімальною кількістю фліпів на генеровану змінну?
Ніл Г

3
@MichaelLugo: Я б сказав, що це безумовно залежить від . :-) Якщо р = 1 / +2 ми знаємо , що ми можемо зробити це в один фліп. Якщо р = +1 / 4 ми знаємо , що ми можемо зробити це в двох , і ми знаємо , що це є оптимальним в обох випадках. Відповідь має бути пов'язана з ентропією H ( p ) . Якщо ми не знаємо нічого про p, крім цього p ( 0 , 1 )pp=1/2p=1/4Н(p)pp(0,1), тоді я підозрюю, що результат простої теорії ігор призведе до того, що в моєму першому коментарі щось наближене до схеми як "оптимальне" відповідним чином.
кардинал

4
Привіт, Giorgio1927, і ласкаво просимо на сайт! Будь ласка, додайте до цього питання тег "самонавчання", оскільки він дозволяє людям бачити, що вони повинні орієнтувати вас на відповідь, а не просто надавати його.
jbowman

Відповіді:


6

Це добре відома проблема з кількома приємними рішеннями, які обговорювалися тут і в stackoverflow (схоже, я не можу розмістити більше ніж одне посилання, але швидкий пошук в Google дає вам кілька цікавих записів). Подивіться на запис у вікіпедії

http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin


Вибачте, я змінив це питання, щоб Google не міг легко ...
Neil G

Люди, які думають над відповіддю на запитання, зауважте, що ця відповідь не є оптимальною для мого відредагованого запитання.
Ніл G

3

Це класична проблема, на мою думку, спочатку приписується фон Нойману. Одне рішення - продовжувати кидати монету парами до тих пір, поки пари не будуть різними, а потім відкласти до результату першої монети в парі.

Явно нехай є результатом кидання i , причому X i - перша монета, а Y i - друга монета. Кожна монета має ймовірність р голів. Тоді P ( X i = H | X iY i ) = P ( X i = T | X iY i ) через симетрію, з якої випливає P ((Хi,Yi)iХiYipП(Хi=Н|ХiYi)=П(Хi=Т|ХiYi) . Щоб пояснити цю симетрію, зауважимо, що X iY i означає, що результати є ( H , T ) або ( T , H ) , і те і інше однаково вірогідне через незалежність.П(Хi=Н|ХiYi)=1/2ХiYi(Н,Т)(Т,Н)

Емпірично, час очікування до появи такої нерівної пари

1/П(ХY)=11-p2-(1-p)2=12p(1-p),

який вибухає, коли наближається до 0 або 1 (що має сенс).p


2

Я не впевнений, як ефективно підбити підсумки, але ми можемо зупинятись, коли загальна кількість рулонів та загальна кількість успіхів t такі, що ( nнт це навіть тому, що ми можемо розділити різні впорядкування, яких ми могли б досягтиnіt,на дві групи з однаковою ймовірністю, кожна з яких відповідає різній виведеній мітці. Ми повинні бути обережними, щоб ми вже не зупинилися на цих елементах, тобто щоб жоден елемент не мав префікса довжиниn'зt'успіхами, що ( n'(нт)нтн'т'парне. Я не впевнений, як перетворити це на очікувану кількість сальто.(н'т')

Проілюструвати:

Ми можемо зупинитися на TH або HT, оскільки вони мають однакову ймовірність. Рухаючись вниз по трикутнику Паскаля, наступні парні доданки знаходяться в четвертому ряду: 4, 6, 4. Це означає, що ми можемо зупинитися після рулонів, якщо одна голова підійде, оскільки ми можемо створити двосторонню відповідність: HHHT з HHTH, а технічно HTHH з THHH, хоча ми б вже зупинилися на них. Аналогічно, дає відповідність HHTT з TTHH (решта, ми б вже зупинилися, перш ніж їх досягти).(42)

Для всі послідовності зупинили префікси. Це стає трохи цікавіше за ( 8(52) де ми узгоджуємо FFFFTTFT з FFFFTTTF.(83)

Для після 8 рулонів шанс не зупинитися -1p=12 із очікуваною кількістю рулонів, якщо ми зупинилися на531128 . Що стосується рішення, коли ми тримаємо прокатні пари, поки вони не відрізняються, шанс не зупинитися -15316 з очікуваною кількістю валків, якщо ми зупинилися на 4. За допомогою рекурсії верхня межа очікуваного флірту для представленого алгоритму дорівнює128116. 1281275316=424127<4

Я написав програму Python, щоб роздрукувати точки зупинки:

import scipy.misc
from collections import defaultdict


bins = defaultdict(list)


def go(depth, seq=[], k=0):
    n = len(seq)
    if scipy.misc.comb(n, k, True) % 2 == 0:
        bins[(n,k)].append("".join("T" if x else "F"
                                   for x in seq))
        return
    if n < depth:
        for i in range(2):
            seq.append(i)
            go(depth, seq, k+i)
            seq.pop()

go(8)

for key, value in sorted(bins.items()):
    for i, v in enumerate(value):
        print(v, "->", "F" if i < len(value) // 2 else "T")
    print()

відбитки:

FT -> F
TF -> T

FFFT -> F
FFTF -> T

FFTT -> F
TTFF -> T

TTFT -> F
TTTF -> T

FFFFFT -> F
FFFFTF -> T

TTTTFT -> F
TTTTTF -> T

FFFFFFFT -> F
FFFFFFTF -> T

FFFFFFTT -> F
FFFFTTFF -> T

FFFFTTFT -> F
FFFFTTTF -> T

FFFFTTTT -> F
TTTTFFFF -> T

TTTTFFFT -> F
TTTTFFTF -> T

TTTTFFTT -> F
TTTTTTFF -> T

TTTTTTFT -> F
TTTTTTTF -> T

Якщо невідомий, будь-яке рішення повинно працювати для обмеження значень p 0 та p 1 . Це повинно дати зрозуміти, що рішення @ Кардинала оптимальне. Очікувана кількість фліпів (з урахуванням невідомого р , звичайно) становить 2 /pp0p1p2/((p(1-p))

@whuber: Я не бачу, чому це повинно бути оптимальним. Моє рішення зупиняється у всіх тих же випадках, що і його. Однак він продовжуватиме котитися після цього, наприклад, тоді як можна зупинитись.
Ніл G

Яке ваше рішення? Я тут не бачу описаного. Я думаю, у нас можуть бути різні концепції рішення @ Кардинала. Я розумію, що це означає «зупинятися, коли кількість головок дорівнює кількості хвостів і відображає значення першого результату в послідовності».
whuber

@whuber: Ви маєте на увазі це: "Просте рішення - перевернути монету два рази: Якщо це HT відобразити її в голови, якщо це TH карта її хвостами. В іншому випадку повторіть експеримент, поки не буде досягнуто одного з цих двох". Це не зупиниться для HHTT. Він чекає пари HT або TH з рівним індексом.
Ніл G

Моє рішення полягає в тому, щоб знайти двостороннє відповідність нескінченних префіксів (жоден з яких не є іншим префіксом) і пов'язати кожну половину відповідності або з головами, або з хвостами.
Ніл G
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.