Được đưa ra với hai người chơi, giả sử A và B cả hai đều đang cố gắng thực hiện một quả phạt đền để giành chiến thắng trong trận đấu. Cho với bốn biến số nguyên a, b, c, d nên xác suất để A bị phạt trước là a / b và xác suất để B bị phạt trước là c / d.
Người sút quả phạt đền trước sẽ thắng trận đấu và theo chương trình bài toán đã cho phải tìm xác suất để A thắng trận đấu.
Đầu vào
a = 10, b = 20, c = 30, d = 40
Đầu ra
probability is 0.5333
Đầu vào
a = 1, b = 2, c = 10, d = 11
Đầu ra
probability is 0.523
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Nhập giá trị của bốn biến số nguyên a, b, c, d
-
Lấy tổng xác suất trừ đi xác suất B thắng trận và chúng ta sẽ nhận được kết quả xác suất A thắng trận
e * (1 / (1 - (1 - f) * (1 - f)))))
Trong đó, e là xác suất để A thắng trận và f là xác suất B thắng
-
Hiển thị xác suất của A thắng trận đấu
Thuật toán
Start Step 1→ Declare function to calculate the probability of winning double probab_win(int a, int b, int c, int d) Declare double e = (double)a / (double)b Declare double f = (double)c / (double)d return (e * (1 / (1 - (1 - f) * (1 - f)))) Step 2→ In main() Declare variable as int a = 10, b = 20, c = 30, d = 40 Call probab_win(a, b, c, d) Stop
Ví dụ
#include <bits/stdc++.h>
using namespace std;
// calculate the probability of winning the match
double probab_win(int a, int b, int c, int d){
double e = (double)a / (double)b;
double f = (double)c / (double)d;
return (e * (1 / (1 - (1 - f) * (1 - f))));
}
int main(){
int a = 10, b = 20, c = 30, d = 40;
cout<<"probability is "<<probab_win(a, b, c, d);
return 0;
} Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
probability is 0.5333