Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Xác suất - Thống kê] Bài toán kim Buffon với dữ liệu mô phỏng cho trước

    Bài toán kim Buffon là một ứng dụng Monte Carlo kinh điển để ước lượng π\piπ: thả ngẫu nhiên một cây kim dài LLL lên mặt phẳng có các đường kẻ song song cách nhau khoảng DDD (L≤DL \le DL≤D). Với mỗi lần thả, gọi yyy là khoảng cách từ tâm kim đến đường kẻ gần nhất (0≤y≤D/20 \le y \le D/20≤y≤D/2) và θ\thetaθ là góc hợp bởi kim với đường kẻ (0≤θ≤π/20 \le \theta \le \pi/20≤θ≤π/2, đơn vị radian). Kim cắt một đường kẻ khi và chỉ khi:

    y≤L2sin⁡θy \le \dfrac{L}{2}\sin\thetay≤2L​sinθ

    Gọi p^\hat pp^​ là tỉ lệ số lần cắt trên tổng số lần thả NNN. Công thức Buffon cho ước lượng:

    π^=2LDp^\hat\pi = \dfrac{2L}{D\hat p}π^=Dp^​2L​

    Dữ liệu (yi,θi)(y_i,\theta_i)(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=1L=D=1L=D=1, N=1N=1N=1, lần thả duy nhất có y=0,θ=0y=0,\theta=0y=0,θ=0: điều kiện cắt là 0≤12sin⁡0=00 \le \frac12\sin 0 = 00≤21​sin0=0, đúng nên cắt. p^=1\hat p = 1p^​=1, π^=2×1/(1×1)=2.000000\hat\pi = 2\times1/(1\times1)=2.000000π^=2×1/(1×1)=2.000000.

    • Định dạng đầu vào:

      Dòng 1: hai số thực LLL và DDD (0<L≤D≤1000 < L \le D \le 1000<L≤D≤100). Dòng 2: số nguyên NNN (0≤N≤1050 \le N \le 10^50≤N≤105). Tiếp theo NNN dòng, mỗi dòng hai số thực yi θiy_i\ \theta_iyi​ θi​ (đơn vị radian, 0≤yi≤D/20 \le y_i \le D/20≤yi​≤D/2, 0≤θi≤π/20 \le \theta_i \le \pi/20≤θi​≤π/2).

    • Định dạng đầu ra:

      In ra một dòng duy nhất giá trị π^\hat\piπ^ làm tròn đến đúng 6 chữ số thập phân (%.6f). Nếu N=0N=0N=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...