Bộ sinh số giả ngẫu nhiên (để kết quả tái lập được, không dùng random thật): Cho số nguyên seed ≥0. Đặt s0=seed. Với i=1,2,3,…: si=(1103515245⋅si−1+12345)mod231. Số ngẫu nhiên thứ i là ui=si/231∈[0,1). Dãy u1,u2,u3,… được lấy theo ĐÚNG thứ tự này, dùng tuần tự trong suốt quá trình mô phỏng.
Bài toán: Cho hàm bậc hai f(x)=ax2+bx+c (a,b,c nguyên) và đoạn [0,L] (L nguyên dương). Đề bài đảm bảo 0≤f(x)≤H với mọi x∈[0,L] (H nguyên dương cho trước, dùng làm cận trên của "hộp bao" [0,L]×[0,H]).
Sinh N điểm ngẫu nhiên trong hộp bao: với điểm thứ i (i=1,…,N), lấy hai số ngẫu nhiên kế tiếp u2i−1,u2i, đặt xi=u2i−1⋅L, yi=u2i⋅H. Đếm số điểm k nằm dưới đường cong (thỏa yi≤f(xi)).
Ước lượng diện tích (giá trị tích phân ∫0Lf(x)dx) theo phương pháp hit-or-miss: I^=L⋅H⋅Nk (quy ước I^=0 nếu N=0). In I^ làm tròn 6 chữ số thập phân.
Ví dụ: a=0,b=0,c=4, L=2, H=4, N=5, seed=1 (hàm hằng f(x)=4) → 8.000000.
Một dòng gồm 7 số nguyên a b c L H N seed (∣a∣,∣b∣,∣c∣≤1000; 1≤L≤1000; 1≤H≤106; 0≤N≤300000; 0≤seed<231; đảm bảo 0≤f(x)≤H với mọi x∈[0,L]).
Một số thực I^ với đúng 6 chữ số thập phân.
Ví dụ:
Đầu vào:
1 0 0 1 1 1 7
Đầu ra:
1.000000
Đầu vào:
0 0 1 5 1 0 1
Đầu ra:
0.000000
Đang tải editor...