Podczas badań pojawił się następujący problem, który jest zaskakująco czysty:
Masz źródło monet. Każda moneta ma stronniczość, a mianowicie prawdopodobieństwo upadku na „głowę”. Dla każdej monety niezależnie istnieje prawdopodobieństwo 2/3, że ma ona stronniczość co najmniej 0,9, a przy pozostałym prawdopodobieństwie jej stronniczość może wynosić dowolną liczbę w [0,1]. Nie znasz stronniczości monet. Na każdym kroku możesz jedynie rzucić monetą i obserwować wynik.
Dla danego n Twoim zadaniem jest znalezienie monety o nastawieniu co najmniej 0,8 z prawdopodobieństwem co najmniej . Czy możesz to zrobić, używając tylko rzutów monetą O (n)?
ds.algorithms
pr.probability
Dana Moshkovitz
źródło
źródło
Odpowiedzi:
Poniżej przedstawiono dość prosty algorytm podrzucaniaO(nlogn) .
Załóżmy, że1−exp(−n) to prawdopodobieństwo błędu, do którego dążymy. Niech N będzie potęgą 2 która wynosi między powiedzmy 100n a 200n (tylko wystarczająco duże stałe czasy n ). Utrzymujemy kandydującego zestawu monet C . Początkowo umieścić N monet C .
Teraz dlai=1,…,logN , wykonaj następujące czynności: C dla Di=2i1010 razy (tylko wystarczająco duża stała). N/2i z większością głów.
Rzuć każdą monetą w
Trzymaj monety
Dowód opiera się na kilku granicach Chernoffa. Główną ideą jest to, że za każdym razem zmniejszamy o połowę liczbę kandydatów, dzięki czemu możemy sobie pozwolić na dwa razy więcej rzutów każdej monety.
źródło