Phương pháp hit-or-miss dùng Monte Carlo để ước lượng diện tích một miền phẳng: rải n điểm trong một hình chữ nhật bao quanh miền, đếm số điểm rơi vào miền, rồi nhân tỉ lệ đó với diện tích hình chữ nhật.
Cho hình chữ nhật [−p,p]×[−q,q] và elip p2x2+q2y2≤1 nằm gọn bên trong. Cho sẵn tọa độ n điểm (xi,yi) trong hình chữ nhật (không cần sinh ngẫu nhiên). Gọi k là số điểm thỏa p2xi2+q2yi2≤1 (nằm trong hoặc trên biên elip). Ước lượng Monte Carlo của diện tích elip là:
S=nk⋅4pq
Diện tích thực của elip là S=πpq. Hãy in ra S, S, và sai số tuyệt đối ∣S−S∣.
Quy ước: nếu n=0, quy định S=0.
Ví dụ: p=q=1 (đường tròn đơn vị), n=4 điểm (0,0) (2,2) (0.5,0.5) (-2,0): có 2 điểm trong hình tròn (0,0) và (0.5,0.5), nên S=2/4⋅4=2.000000, S=π≈3.141593, sai số ≈1.141593.
Dòng 1: hai số thực p,q>0 và số nguyên n (0≤n≤104), cách nhau bởi khoảng trắng. n dòng tiếp theo, mỗi dòng gồm hai số thực xi yi (−p≤xi≤p, −q≤yi≤q).
In trên một dòng ba số thực: S, S, ∣S−S∣, mỗi số làm tròn đúng 6 chữ số thập phân, cách nhau bởi khoảng trắng.
Ví dụ:
Đầu vào:
1 1 4
0 0
2 2
0.5 0.5
-2 0
Đầu ra:
2.000000 3.141593 1.141593
Đầu vào:
2 3 0
Đầu ra:
0.000000 18.849556 18.849556
Đang tải editor...