Diberi koin dengan bias tidak diketahui , bagaimana saya bisa menghasilkan variasi - seefisien mungkin - yang didistribusikan oleh Bernoulli dengan probabilitas 0,5? Artinya, menggunakan jumlah minimum flips per variate yang dihasilkan.
random-generation
Neil G
sumber
sumber
Jawaban:
Ini adalah masalah yang terkenal dengan beberapa solusi bagus yang telah dibahas di sini dan di stackoverflow (sepertinya saya tidak dapat memposting lebih dari satu tautan tetapi pencarian google cepat memberi Anda beberapa entri yang menarik). Lihatlah entri wikipedia
http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_price_coin
sumber
Ini adalah masalah klasik, saya percaya awalnya dikaitkan dengan von Neumann. Salah satu solusinya adalah dengan terus melemparkan koin berpasangan sampai pasangan berbeda, dan kemudian tunduk pada hasil koin pertama dalam pasangan.
Biarkan secara eksplisit menjadi hasil dari lemparan i , dengan X i menjadi koin pertama, dan Y i menjadi koin kedua. Setiap koin memiliki probabilitas p kepala. Kemudian P ( X i = H | X i ≠ Y i ) = P ( X i = T | X i ≠ Y i ) karena simetri, yang menyiratkan P (( Xsaya, Ysaya) saya Xsaya Ysaya hal P( Xsaya= H| Xsaya≠ Ysaya) = P( Xsaya= T| Xsaya≠ Ysaya) . Untuk secara eksplisit melihat catatan simetri ini bahwa X i ≠ Y i menyiratkan hasilnya adalah ( H , T ) atau ( T , H ) , keduanya sama-sama kemungkinan karena independensi.P( Xsaya= H| Xsaya≠ Ysaya) = 1 / 2 Xsaya≠ Ysaya ( H, T) ( T, H)
Secara empiris, waktu tunggu hingga pasangan yang tidak setara itu
yang meledak ketika mendekati 0 atau 1 (yang masuk akal).hal
sumber
Saya tidak yakin bagaimana untuk meringkas persyaratan efisien, tetapi kita dapat berhenti kapan jumlah gulungan dan jumlah keberhasilan t adalah seperti yang ( nn t bahkan karena kita dapat mempartisi urutan berbeda yang dapat kita capaindantmenjadi dua kelompok dengan probabilitas yang sama, masing-masing sesuai dengan label keluaran yang berbeda. Kita perlu berhati-hati bahwa kita belum berhenti untuk elemen-elemen ini, yaitu, bahwa tidak ada elemen memiliki awalan panjangn′dengant′berhasil sehingga ( n′( nt) n t n′ t′ genap. Saya tidak yakin bagaimana mengubahnya menjadi jumlah flips yang diharapkan.( n′t′)
Menggambarkan:
Kita bisa berhenti pada TH atau HT karena ini memiliki probabilitas yang sama. Bergerak turun ke segitiga Pascal, istilah genap berikutnya berada di baris keempat: 4, 6, 4. Berarti kita dapat berhenti setelah gulungan jika satu kepala muncul karena kita dapat membuat pencocokan bipartit: HHHT dengan HHTH, dan secara teknis HTHH dengan THHH meskipun kita sudah berhenti untuk itu. Demikian pula, menghasilkan HHTT yang cocok dengan TTHH (sisanya, kita sudah akan berhenti sebelum mencapai mereka).( 42)
Untuk , semua urutan telah menghentikan awalan. Itu menjadi sedikit lebih menarik di ( 8( 52) tempat kami mencocokkan FFFFTTFT dengan FFFFTTTF.( 83)
Untuk setelah 8 gulungan, peluang untuk tidak berhenti adalah1p = 12 dengan jumlah gulungan yang diharapkan jika kita berhenti dari531128 . Untuk solusi di mana kami terus memutar pasangan hingga berbeda, peluang untuk tidak berhenti adalah15316 dengan jumlah gulungan yang diharapkan jika kita telah berhenti dari 4. Dengan rekursi, batas atas pada flip yang diharapkan untuk algoritma yang disajikan adalah128116 . 128127⋅ 5316= 424127< 4
Saya menulis program Python untuk mencetak titik pemberhentian:
cetakan:
sumber