Xét một đồng xu có xác suất ra mặt sấp (H) là θ, với θ chỉ nhận một trong m giá trị rời rạc cho trước θ1,…,θm (grid), mỗi giá trị có xác suất tiên nghiệm tương ứng π1,…,πm (∑iπi=1).
Tung đồng xu n lần độc lập (cùng một đồng xu, θ không đổi trong suốt n lần tung) và quan sát được một dãy kết quả gồm các ký tự H/T. Gọi h và t lần lượt là số lần ra H và T trong dãy (h+t=n). Theo định lý Bayes, xác suất hậu nghiệm của từng giá trị θi là:
P(θi∣dữ liệu)=∑j=1mπj⋅θjh(1−θj)tπi⋅θih(1−θi)t
Hãy tính:
Vì n có thể lớn (tới 105), các tích θih(1−θi)t có thể tràn số dưới nếu tính trực tiếp — cần tính toán trong không gian log.
Ví dụ: m=2, n=10, θ=(0.3,0.7), π=(0.5,0.5), dãy HHHHHHHHHH (10 chữ H) — kết quả nghiêng mạnh về θ2=0.7: MAP là chỉ số 2, kỳ vọng hậu nghiệm ≈0.699916.
Dòng 1: hai số nguyên m và n (1≤m≤100, 0≤n≤100000).
Dòng 2: m số thực θ1…θm (0≤θi≤1).
Dòng 3: m số thực π1…πm (đảm bảo ∑iπi=1).
Dòng 4: chuỗi độ dài n gồm các ký tự H/T (nếu n=0, dòng này rỗng hoặc không xuất hiện).
In ra một dòng gồm 2 giá trị cách nhau bởi khoảng trắng: chỉ số MAP (số nguyên, 1-indexed) và kỳ vọng hậu nghiệm của θ (làm tròn 6 chữ số thập phân).
Nếu tất cả xác suất hậu nghiệm (chưa chuẩn hoá) đều bằng 0 (dữ liệu không thể xảy ra với bất kỳ θi nào có πi>0), in ra -1 -1.000000.
Ví dụ:
Đầu vào:
3 0
0.1 0.5 0.9
0.2 0.3 0.5
Đầu ra:
3 0.620000
Đầu vào:
2 10
0.3 0.7
0.5 0.5
HHHHHHHHHH
Đầu ra:
2 0.699916
Đang tải editor...