Trong bài toán này, cho bốn giá trị p, q, r, s. Nhiệm vụ là tìm xác suất người chơi thắng khi biết xác suất bắn trúng đích.
Hai người chơi bắn cung. Xác suất người 1 trúng = p/q. Xác suất người 2 trúng = r/s. Tìm xác suất người 1 thắng.
Ví dụ minh họa:
Đầu vào
p = 3, q = 5, r = 2, s = 5
Đầu ra
0.789
Phương pháp giải
Cần kiến thức xác suất. Vì không giới hạn số lượt bắn, tính toán độc lập số lần thử.
P1 = p/q, miss = 1 - p/q. P2 = r/s, miss = 1 - r/s.
Xác suất người 1 thắng (vô hạn lượt):
P1 + (miss1*miss2*P1) + (miss1*miss2*miss1*miss2*P1) + ...
Đây là cấp số nhân vô hạn: A = P1, R = (1-P1)*(1-P2). Tổng S = A/(1-R).
$$S=\frac{\frac{p}{q}}{1-(1-\frac{p}{q})(1-\frac{r}{s})}$$
Chương trình minh họa:
Ví dụ
#include <iostream>
using namespace std;
double calcWinningPropP1(double p, double q, double r, double s){
return (p / q) / (1 - ( (1 - (p/q)) * (1 - (r/s)) ) );
}
int main() {
double p = 3, q = 5, r = 2, s = 5;
cout<<"The probability of player 1 winning is "<<calcWinningPropP1(p, q, r, s);
return 0;
}Kết quả
The probability of player 1 winning is 0.789474