Xét bài toán ước lượng θ=∫01exdx=e−1≈1.718282 bằng phương pháp Monte Carlo. Cho sẵn n số u1,…,un∈[0,1) (không cần sinh ngẫu nhiên). So sánh hai cách ước lượng:
1. Monte Carlo thông thường: đặt Yi=eui. θ^1=n1∑i=1nYi,s12=n−11∑i=1n(Yi−θ^1)2
2. Biến đối ngẫu (antithetic variates): với mỗi ui, ghép thêm giá trị đối ngẫu 1−ui và đặt Zi=2eui+e1−ui. θ^2=n1∑i=1nZi,s22=n−11∑i=1n(Zi−θ^2)2
Kỹ thuật biến đối ngẫu thường cho phương sai s22 nhỏ hơn nhiều so với s12 trong khi cả hai đều ước lượng đúng θ.
Quy ước: nếu n=0, cả bốn giá trị output bằng 0. Nếu n=1, cả s12 và s22 quy định bằng 0 (không chia cho 0).
Ví dụ: n=1, u1=0.5: Y1=e0.5≈1.648721 nên θ^1=1.648721; Z1=2e0.5+e0.5=1.648721 nên θ^2=1.648721; s12=s22=0 (vì n=1). Output: 1.648721 0.000000 1.648721 0.000000.
Dòng 1: số nguyên n (0≤n≤105). Dòng 2 (nếu n>0): n số thực u1,…,un∈[0,1), cách nhau bởi khoảng trắng.
In trên một dòng bốn số thực cách nhau bởi khoảng trắng: θ^1, s12, θ^2, s22, mỗi số làm tròn đúng 6 chữ số thập phân.
Ví dụ:
Đầu vào:
1
0.5
Đầu ra:
1.648721 0.000000 1.648721 0.000000
Đầu vào:
0
Đầu ra:
0.000000 0.000000 0.000000 0.000000
Đang tải editor...