Lấy mẫu loại bỏ (rejection sampling) là kỹ thuật Monte Carlo để lấy mẫu từ một phân phối mục tiêu có mật độ f khi ta chỉ biết cách lấy mẫu từ một phân phối đề xuất g đơn giản hơn, với điều kiện tồn tại hằng số M sao cho f(x)≤M⋅g(x) với mọi x.
Xét phân phối mục tiêu có mật độ tam giác f(x)=2x trên [0,1], phân phối đề xuất g là phân phối đều trên [0,1] (mật độ g(x)=1), và M=2 (vì maxf=2). Với một điểm đề xuất u∼g và một số ngẫu nhiên quyết định v∼Uniform(0,1), điểm u được CHẤP NHẬN nếu:
v≤M⋅g(u)f(u)=u
Cho sẵn n cặp (ui,vi) đã sinh sẵn (không cần sinh ngẫu nhiên). Hãy tính:
Quy ước: nếu n=0 hoặc không có mẫu nào được chấp nhận, tỉ lệ chấp nhận và/hoặc giá trị trung bình quy định bằng 0.
Ví dụ: n=1, cặp (0.2, 0.9): vì 0.9>0.2 nên bị từ chối. Output: 0 0.000000 0.000000.
Dòng 1: số nguyên n (0≤n≤105). n dòng tiếp theo, mỗi dòng gồm hai số thực ui vi∈[0,1].
In trên một dòng ba giá trị cách nhau bởi khoảng trắng: số nguyên k (số mẫu chấp nhận), tỉ lệ chấp nhận (làm tròn 6 chữ số thập phân), giá trị trung bình các mẫu chấp nhận (làm tròn 6 chữ số thập phân).
Ví dụ:
Đầu vào:
0
Đầu ra:
0 0.000000 0.000000
Đầu vào:
3
0.5 0.1
0.8 0.2
0.9 0.05
Đầu ra:
3 1.000000 0.733333
Đang tải editor...