Đượ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