Đưa ra một đồng xu có độ lệch không xác định , làm cách nào tôi có thể tạo ra các biến thể - hiệu quả nhất có thể - được Bernoulli phân phối với xác suất 0,5? Đó là, sử dụng số lần lật tối thiểu trên mỗi phương sai được tạo.
Đưa ra một đồng xu có độ lệch không xác định , làm cách nào tôi có thể tạo ra các biến thể - hiệu quả nhất có thể - được Bernoulli phân phối với xác suất 0,5? Đó là, sử dụng số lần lật tối thiểu trên mỗi phương sai được tạo.
Câu trả lời:
Đây là một vấn đề nổi tiếng với một số giải pháp hay đã được thảo luận ở đây và trong stackoverflow (có vẻ như tôi không thể đăng nhiều hơn một liên kết nhưng một tìm kiếm google nhanh cung cấp cho bạn một số mục thú vị). Có một cái nhìn vào mục wikipedia
http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin
Đây là một vấn đề kinh điển, tôi tin rằng ban đầu được quy cho von Neumann. Một giải pháp là tiếp tục tung đồng xu theo cặp cho đến khi các cặp khác nhau, và sau đó trì hoãn kết quả của đồng tiền đầu tiên trong cặp.
để là kết quả của việc ném , với là đồng tiền đầu tiên và là đồng tiền thứ hai. Mỗi đồng xu có xác suất của người đứng đầu. Khi đó do tính đối xứng, hàm ý . Để khám phá rõ ràng lưu ý đối xứng này rằng ngụ ý các kết quả là hoặc , cả hai đều có khả năng như nhau do độc lập.
Theo kinh nghiệm, thời gian chờ đợi cho đến khi một cặp không bằng nhau là
thổi lên khi tiến gần đến 0 hoặc 1 (có nghĩa).
Tôi không chắc làm thế nào để tổng hợp các thuật ngữ một cách hiệu quả, nhưng chúng tôi có thể dừng bất cứ khi nào tổng số cuộn và tổng số thành công sao cho thậm chí vì chúng tôi có thể phân vùng khác nhau thứ tự mà chúng ta có thể đạt được và thành hai nhóm xác suất bằng nhau, mỗi nhóm tương ứng với một nhãn xuất ra khác nhau. Chúng ta cần cẩn thận rằng chúng ta chưa dừng lại đối với các phần tử này, nghĩa là không có phần tử nào có tiền tố có độ dài với thành công sao cho là chẵn. Tôi không chắc làm thế nào để biến điều này thành một số lần lật dự kiến.
Để minh họa:
Chúng ta có thể dừng lại ở TH hoặc HT vì chúng có xác suất bằng nhau. Di chuyển xuống tam giác của Pascal, các số hạng chẵn tiếp theo nằm ở hàng thứ tư: 4, 6, 4. Có nghĩa là chúng ta có thể dừng sau khi cuộn nếu một đầu xuất hiện do chúng ta có thể tạo một kết hợp lưỡng cực: HHHT với HHTH và HTHH về mặt kỹ thuật với THHH mặc dù chúng tôi đã dừng lại cho những người đó. Tương tự, mang lại phù hợp với TTHH (phần còn lại, chúng tôi đã dừng lại trước khi tiếp cận chúng).
Đối với , tất cả các chuỗi đã dừng tiền tố. Sẽ thú vị hơn một chút tại khi chúng tôi kết hợp FFFFTTFT với FFFFTTTF.
Đối với sau 8 cuộn, cơ hội không dừng lại là với số lượng cuộn dự kiến nếu chúng tôi đã dừng . Đối với giải pháp mà chúng tôi tiếp tục lăn các cặp cho đến khi chúng khác nhau, cơ hội không dừng lại là với số lượng cuộn dự kiến nếu chúng tôi dừng lại 4. Bằng cách đệ quy, giới hạn trên của các lần lật dự kiến đối với thuật toán được trình bày là .
Tôi đã viết một chương trình Python để in ra các điểm dừng:
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()
in:
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