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ê] Monte Carlo bước ngẫu nhiên (random walk) bất đối xứ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\ge 0≥0. Đặt s0=seeds_0=\text{seed}s0​=seed. Với i=1,2,3,…i=1,2,3,\dotsi=1,2,3,…: si=(1103515245⋅si−1+12345) mod 231.s_i = (1103515245 \cdot s_{i-1} + 12345) \bmod 2^{31}.si​=(1103515245⋅si−1​+12345)mod231. Số ngẫu nhiên thứ iii là ui=si/231∈[0,1)u_i = s_i / 2^{31} \in [0,1)ui​=si​/231∈[0,1). Dãy u1,u2,u3,…u_1,u_2,u_3,\dotsu1​,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: Xét bước ngẫu nhiên (random walk) 1 chiều bắt đầu tại vị trí 000: ở mỗi bước, vị trí tăng +1+1+1 với xác suất p/qp/qp/q và giảm −1-1−1 với xác suất 1−p/q1-p/q1−p/q (0<p<q≤10000 < p < q \le 10000<p<q≤1000, p,qp,qp,q nguyên).

    Mô phỏng MMM phép thử độc lập, mỗi phép thử gồm TTT bước. Các số ngẫu nhiên được lấy TUẦN TỰ theo đúng thứ tự toàn cục: phép thử 111 dùng lần lượt TTT số ngẫu nhiên đầu tiên (mỗi số cho một bước), rồi đến phép thử 222 dùng TTT số tiếp theo, v.v. Ở bước thứ ttt của một phép thử, lấy số ngẫu nhiên kế tiếp uuu: nếu u<p/qu < p/qu<p/q thì bước +1+1+1, ngược lại bước −1-1−1.

    Với mỗi phép thử, kiểm tra xem vị trí có quay lại đúng 000 ít nhất một lần SAU khi đã đi ít nhất 1 bước hay không (không tính vị trí xuất phát ban đầu). Sau khi mô phỏng xong MMM phép thử, tính:

    1. Xác suất ước lượng quay lại 000: (số phép thử có quay lại 000)/M/M/M (quy ước =0=0=0 nếu M=0M=0M=0).
    2. Vị trí trung bình cuối cùng (trung bình cộng vị trí sau TTT bước của MMM phép thử) (quy ước =0=0=0 nếu M=0M=0M=0).

    In 2 giá trị trên, mỗi giá trị làm tròn 6 chữ số thập phân, cách nhau khoảng trắng.

    Ví dụ: M=3, T=4, p=1, q=2, seed=1M=3,\ T=4,\ p=1,\ q=2,\ \text{seed}=1M=3, T=4, p=1, q=2, seed=1 → 0.666667 1.333333.

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

      Một dòng gồm 5 số nguyên M T p q seedM\ T\ p\ q\ \text{seed}M T p q seed (0≤M≤10000\le M\le 10000≤M≤1000; 0≤T≤20000\le T\le 20000≤T≤2000; 0<p<q≤10000<p<q\le 10000<p<q≤1000; 0≤seed<2310\le \text{seed}<2^{31}0≤seed<231).

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

      Hai số thực (mỗi số 6 chữ số thập phân), cách nhau khoảng trắng: xác suất quay lại 000, và vị trí trung bình cuối cùng.

    Ví dụ:

    Đầu vào:

    1 0 1 2 1

    Đầu ra:

    0.000000 0.000000
    

    Đầu vào:

    0 10 1 2 1

    Đầu ra:

    0.000000 0.000000
    

    Đang tải editor...