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 mô phỏng tung hai xúc xắc

    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: Mô phỏng NNN lần tung một cặp xúc xắc 6 mặt (các mặt 1..61..61..6 đồng khả năng). Ở lần tung thứ iii (i=1,…,Ni=1,\dots,Ni=1,…,N), lấy hai số ngẫu nhiên kế tiếp u2i−1,u2iu_{2i-1}, u_{2i}u2i−1​,u2i​; mặt xúc xắc thứ nhất d1,i=⌊u2i−1⋅6⌋+1d_{1,i} = \lfloor u_{2i-1}\cdot 6\rfloor + 1d1,i​=⌊u2i−1​⋅6⌋+1, mặt xúc xắc thứ hai d2,i=⌊u2i⋅6⌋+1d_{2,i} = \lfloor u_{2i}\cdot 6\rfloor + 1d2,i​=⌊u2i​⋅6⌋+1 (cả hai thuộc 1..61..61..6). Tổng hai mặt là si=d1,i+d2,i∈{2,…,12}s_i = d_{1,i}+d_{2,i} \in \{2,\dots,12\}si​=d1,i​+d2,i​∈{2,…,12}.

    Cho thêm số nguyên kkk (2≤k≤122 \le k \le 122≤k≤12). Sau NNN lần tung, tính:

    1. Tần suất tương đối của tổng bằng kkk: fk=soˆˊ laˆˋn si=kNf_k = \dfrac{\text{số lần } s_i = k}{N}fk​=Nsoˆˊ laˆˋn si​=k​ (quy ước fk=0f_k = 0fk​=0 nếu N=0N=0N=0).
    2. Tổng xuất hiện nhiều lần nhất (mode). Nếu nhiều tổng cùng đạt số lần nhiều nhất, chọn tổng NHỎ NHẤT trong số đó (quy ước mode =0=0=0 nếu N=0N=0N=0).
    3. Số lần xuất hiện tuyệt đối của tổng mode đó (quy ước =0=0=0 nếu N=0N=0N=0).

    In 3 giá trị trên cùng một dòng, cách nhau bởi khoảng trắng: fkf_kfk​ (6 chữ số thập phân), mode (số nguyên), số lần của mode (số nguyên).

    Ví dụ: N=5, k=7, seed=1N=5,\ k=7,\ \text{seed}=1N=5, k=7, seed=1 → 0.200000 6 2.

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

      Một dòng gồm 3 số nguyên N k seedN\ k\ \text{seed}N k seed (0≤N≤5000000 \le N \le 5000000≤N≤500000; 2≤k≤122 \le k \le 122≤k≤12; 0≤seed<2310 \le \text{seed} < 2^{31}0≤seed<231).

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

      Một dòng: fkf_kfk​ (6 chữ số thập phân), mode (nguyên), số lần của mode (nguyên) — cách nhau khoảng trắng.

    Ví dụ:

    Đầu vào:

    0 7 1

    Đầu ra:

    0.000000 0 0
    

    Đầu vào:

    1 7 5

    Đầu ra:

    0.000000 6 1
    

    Đang tải editor...