2명의 플레이어가 있다고 가정해 보겠습니다. A와 B가 모두 경기에서 이기고 패널티를 받으려고 한다고 가정해 보겠습니다. 4개의 정수 변수 a, b, c, d가 주어졌을 때 A가 페널티를 먼저 받을 확률은 a/b이고 B가 페널티를 먼저 받을 확률은 c/d입니다.
먼저 페널티를 득점하는 사람이 경기에서 승리하며 주어진 문제 설명 프로그램에 따라 A가 경기에서 승리할 확률을 찾아야 합니다.
입력
a = 10, b = 20, c = 30, d = 40
출력
probability is 0.5333
입력
a = 1, b = 2, c = 10, d = 11
출력
probability is 0.523
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
4개의 정수 변수 a, b, c, d의 값 입력
-
총 확률에서 B가 경기에서 승리할 확률을 빼면 A가 경기에서 승리할 확률이 나옵니다.
e * (1 / (1 - (1 - f) * (1 - f))))
여기서 e는 A가 경기에서 승리할 확률이고 f는 B가 경기에서 승리할 확률입니다.
-
A가 경기에서 승리할 확률 표시
알고리즘
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
예시
#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; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
probability is 0.5333