Das folgende Problem trat während der Recherche auf und es ist überraschend sauber:
Sie haben eine Münzquelle. Jede Münze hat eine Tendenz, nämlich eine Wahrscheinlichkeit, dass sie auf den "Kopf" fällt. Für jede Münze gibt es eine Wahrscheinlichkeit von 2/3, dass sie einen Bias von mindestens 0,9 hat, und mit der restlichen Wahrscheinlichkeit kann ihr Bias eine beliebige Zahl in [0,1] sein. Sie kennen die Vorurteile der Münzen nicht. Alles, was Sie in einem Schritt tun können, ist eine Münze zu werfen und das Ergebnis zu beobachten.
Für ein gegebenes n besteht Ihre Aufgabe darin, eine Münze mit einem Bias von mindestens 0,8 und einer Wahrscheinlichkeit von mindestens . Können Sie das nur mit O (n) Münzwürfen machen?
ds.algorithms
pr.probability
Dana Moshkovitz
quelle
quelle
Antworten:
Das Folgende ist ein ziemlich direkterO(nlogn) -Toss-Algorithmus.
Angenommen,1−exp(−n) ist die angestrebte Fehlerwahrscheinlichkeit. Sei N eine Potenz von 2 , die zwischen etwa 100n und 200n (gerade einige ausreichend große konstante Zeiten n ). Wir pflegen einen Kandidatensatz von Münzen, C . Zunächst setzen wir N Münzen in C .
Jetzt füri=1,…,logN , gehen Sie wie folgt vor : C für Di=2i1010 mal (nur einige groß genug , um konstant). N/2i Münzen mit den meisten Köpfen.
Toss jede Münze in
Behalte die
Der Beweis basiert auf ein paar Chernoff-Schranken. Die Hauptidee ist, dass wir jedes Mal die Hälfte der Anzahl der Kandidaten haben und uns so doppelt so viele Würfe von jeder Münze leisten können.
quelle