Bilinmeyen önyargı ile bir sikke Verilen verimli mümkün olduğunca - - olasılık 0.5 Bernoulli-dağıtılan Ben değişebilirlerin oluşturabilir nasıl? Yani, üretilen değişken başına minimum döndürme sayısı kullanılır.
Bilinmeyen önyargı ile bir sikke Verilen verimli mümkün olduğunca - - olasılık 0.5 Bernoulli-dağıtılan Ben değişebilirlerin oluşturabilir nasıl? Yani, üretilen değişken başına minimum döndürme sayısı kullanılır.
Yanıtlar:
Bu, burada ve stackoverflow'da tartışılan birkaç güzel çözümde iyi bilinen bir sorundur (birden fazla bağlantı gönderemiyorum, ancak hızlı bir google arama size bazı ilginç girişler veriyor). Wikipedia girişine bir göz atın
http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin
Bu klasik bir problem, sanırım aslında von Neumann'a atfediliyor. Bir çözüm, çiftler farklı olana kadar jetonu çiftler halinde atmaya devam etmek ve daha sonra çiftteki ilk jetonun sonucuna ertelemektir.
Açık bir şekilde izin atmak sonuçlanacağından i ile, X i ilk para olmak ve Y, I , ikinci para olmak. Her madalyonun kafa p olasılığı vardır . Sonra simetri nedeniyle P ( X i = H | X i ≠ Y i ) = P ( X i = T | X i ≠ Y i ) , bu P anlamına gelir ( . Bu simetriyi açıkça görmek için X i ≠ Y i ' nin sonuçlarının ima ettiği ( H , T ) veya ( T , H )' dir.
Ampirik olarak, eşit olmayan bir çiftin bekleme süresi
0 veya 1'e yaklaştıkça patlar (mantıklıdır).
Şartları verimli bir şekilde nasıl özetleyeceğimden emin değilim, ancak toplam rulo sayısı ve toplam başarı sayısı t olduğu zaman durabiliriz ( nvebaşarabileceğimiz farklı sıralamaları,her biri farklı bir çıktı etiketine karşılık gelen iki eşit olasılık grubunaayırabileceğimizden bile. Biz zaten hiçbir eleman uzunluğunun bir öneki olduğundan emin yani bu unsurlar, durdu değil dikkatli olmak gerekirileöyle ki başarılarıbile değildir. Bunu beklenen sayıda döndürmeye nasıl çevireceğimden emin değilim.t n ′ t ′ ( n ′
Örneklemek gerekirse:
Eşit olasılıklara sahip olduklarından TH veya HT'de durabiliriz. Pascal'ın üçgeni aşağı doğru hareket ederken, sonraki çift terimler dördüncü sırada yer alır: 4, 6, 4. Bir kafa ortaya çıkarsa rulolardan sonra durabileceğimiz anlamına gelir, çünkü iki taraflı bir eşleşme oluşturabiliriz: HHTH ile HHHT ve teknik olarak HTHH ile THHH biz zaten bunun için durmuş olurdu. Benzer şekilde , TTHH ile eşleşen verir (geri kalanı, onlara ulaşmadan önce dururduk).
İçin , dizilerin tüm önekleri durduruldu. FFFFTTFT ile FFFFTTTF'yi eşleştirdiğimiz biraz daha ilginç hale geliyor.( 8
İçin 8 rulo sonra durdurulmuş olan değil şans biz durduruldu halinde rulo beklenen sayıda . Haddeleme çiftlerini farklı olana kadar tuttuğumuz çözüm için, durma şansımız 4 olarak durduysak beklenen sayıda rulo ile Özyineleme ile, beklenen döndürmelerde bir üst sınır sunulan algoritma için . 1 53 1 128
Durma noktalarını yazdırmak için bir Python programı yazdım:
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()
baskılar:
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