Bài toán kim Buffon là một ứng dụng Monte Carlo kinh điển để ước lượng π: thả ngẫu nhiên một cây kim dài L lên mặt phẳng có các đường kẻ song song cách nhau khoảng D (L≤D). Với mỗi lần thả, gọi y là khoảng cách từ tâm kim đến đường kẻ gần nhất (0≤y≤D/2) và θ là góc hợp bởi kim với đường kẻ (0≤θ≤π/2, đơn vị radian). Kim cắt một đường kẻ khi và chỉ khi:
y≤2Lsinθ
Gọi p^ là tỉ lệ số lần cắt trên tổng số lần thả N. Công thức Buffon cho ước lượng:
π^=Dp^2L
Dữ liệu (yi,θi) của từng lần thả được cho sẵn trong đầu vào để bảo đảm kết quả tính toán xác định.
Ví dụ: L=D=1, N=1, lần thả duy nhất có y=0,θ=0: điều kiện cắt là 0≤21sin0=0, đúng nên cắt. p^=1, π^=2×1/(1×1)=2.000000.
Dòng 1: hai số thực L và D (0<L≤D≤100). Dòng 2: số nguyên N (0≤N≤105). Tiếp theo N dòng, mỗi dòng hai số thực yi θi (đơn vị radian, 0≤yi≤D/2, 0≤θi≤π/2).
In ra một dòng duy nhất giá trị π^ làm tròn đến đúng 6 chữ số thập phân (%.6f). Nếu N=0 hoặc không có lần thả nào cắt đường kẻ (tỉ lệ cắt bằng 0), in ra undefined.
Ví dụ:
Đầu vào:
1.0 1.0
0
Đầu ra:
undefined
Đầu vào:
1.0 1.0
1
0 0
Đầu ra:
2.000000
Đang tải editor...