Cung thủ


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type

Vào những năm 2000, ở làng UTC xuất hiện 2 cung thủ khét tiếng là Vũ và Việt.

Một hôm, hai người quyết định đọ sức để phân cao thấp và mời thầy Sơn tới làm giám khảo.

Cuộc thi diễn ra như sau: Vũ là người được bắn trước, sau đó hai người lần lượt bắn vào bia. Xác suất Vũ bắn trúng bia trong mỗi lần bắn là \(a/b\), còn xác suất Việt bắn trúng bia là \(c/d\). Kết quả của mỗi lần bắn là độc lập với các lần bắn trước đó.

Người nào bắn trúng bia trước sẽ giành chiến thắng.

Thầy Sơn biết xác suất bắn trúng của cả hai người nhưng lại hơi kém tính toán, nên không thể tính được xác suất Vũ giành chiến thắng.

Hãy giúp thầy Sơn tính xác suất Vũ giành chiến thắng.

Đầu vào

Một dòng chứa bốn số nguyên dương \(a, b, c, d\). \((1 \le a, b, c, d \le 10^9, a < b, c < d)\)

Đầu ra

In ra xác suất Vũ giành chiến thắng, kết quả được làm tròn đến \(6\) chữ số sau dấu thập phân.

Giới hạn

\(70\%\) số test: \(1 \le a, b, c, d \le 1000\).

\(30\%\) số test còn lại: Không có ràng buộc gì thêm.

Ví dụ

Đầu vào

1 2 1 2

Đâu ra

0.666667

Comments


  • 0
    ManhDucDong_KHMT_K64  commented on Sept. 15, 2026, 1:29 p.m.

    Giải thích bài toán của HKien cho anh em lười tìm hiểu:

    • Ta gọi kết quả là P
    • Ta đặt tỉ lệ Vũ thắng là: p = a/b, Việt: q = c/d
    • Muốn Vũ thắng thì p phải xảy ra. Vậy thì p xảy ra khi nào???
    • Vũ thắng nên p chắc chắn có. Nhưng vấn đề là thắng khi nào, lúc này vấn đề xuất hiện, Vũ thắng ngay lần đầu vậy là xác suất là p, để thắng tại lần 2 thì lần 1 cả 2 phải thua, tức là (1-p)*(1-q)*p xảy ra, nhưng lần 2 chưa thắng mà lại phải đến lần 3 thì saoo??? Thì lại nhân thêm rồi cộng vào tổng.

    Lúc này:

    \[ P = p + (1-p)(1-q)p + [(1-p)(1-q)]^2p + \dots \]

    • Ta có nhận xét là không thể biết được là lần nào sẽ là lần thắng, vậy thì có thể chắc chắn rằng bài toán là cấp số nhân vô hạn.
    • Công thức cấp số nhân vô hạn là:

    \[ 1 + r + r^2 + r^3 + \dots = \frac{1}{1-r} \]

    • Đặt:

    \[ r = (1-p)(1-q) \]

    Khi đó:

    \[ P = p(1+r+r^2+r^3+\dots) \]

    Áp dụng công thức cấp số nhân vô hạn:

    \[ P = \frac{p}{1-r} \]

    4. Thay r vào

    Vì:

    \[ r = (1-p)(1-q) \]

    nên:

    \[ P = \frac{p}{1-(1-p)(1-q)} \]

    5. Thay p = a/b, q = c/d

    Ta được:

    \[ P = \frac{\frac{a}{b}} {1-\left(1-\frac{a}{b}\right) \left(1-\frac{c}{d}\right)} \]

    Đây chính là công thức cần dùng.

    6. Rút gọn công thức

    Ta có:

    \[ 1-\frac{a}{b}=\frac{b-a}{b} \]

    và:

    \[ 1-\frac{c}{d}=\frac{d-c}{d} \]

    Do đó:

    \[ P = \frac{\frac{a}{b}} {1-\frac{(b-a)(d-c)}{bd}} \]

    \[ P = \frac{\frac{a}{b}} {\frac{bd-(b-a)(d-c)}{bd}} \]

    Suy ra:

    \[ \boxed{ P = \frac{ad} {bd-(b-a)(d-c)} } \]

    7. Code Python

    a, b, c, d = map(int, input().split())
    
    ans = (a * d) / (b * d - (b - a) * (d - c))
    
    print(f"{ans:.6f}")
    

    • 0
      minhduc5a12  commented on Sept. 15, 2026, 5:47 p.m.

      quá đỉnh


      • 0
        ManhDucDong_KHMT_K64  commented on Sept. 16, 2026, 10:21 a.m.

        Người không biết làm viết hướng dẫn cho ae làm=))

Giải đáp với AI