Bài toán kim Buffon cổ điển: thả ngẫu nhiên một cây kim dài L xuống mặt phẳng kẻ các vạch song song cách đều nhau khoảng cách D (L≤D). Xác suất kim cắt một vạch bất kỳ là p=πD2L, từ đó có thể ước lượng π.
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.
Mô phỏng: Cho L,D (số nguyên, 1≤L≤D≤1000) và số lần thả kim N. Ở lần thả thứ i (i=1,…,N), lấy hai số ngẫu nhiên kế tiếp u2i−1,u2i:
Kim CẮT một vạch nếu xi≤2Lsinθi. Gọi C là số lần cắt trong N lần thả.
undefined.Ví dụ: L=1, D=2, N=5, seed=1 → 5.000000.
Một dòng gồm 4 số nguyên L D N seed (1≤L≤D≤1000; 0≤N≤200000; 0≤seed<231).
In undefined nếu C=0; ngược lại in π^ với đúng 6 chữ số thập phân.
Ví dụ:
Đầu vào:
1 1 0 1
Đầu ra:
undefined
Đầu vào:
1 1 1 1
Đầu ra:
undefined
Đang tải editor...