Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 세 번째 주사위 던지기에서 더 많은 가치를 얻을 확률


3명의 플레이어 A, B, C가 주사위를 던졌을 때 C가 주사위를 던질 확률을 찾아야 하며 C가 득점한 숫자는 A와 B 모두보다 높습니다.

더 많은 값을 얻을 확률을 확인하려면 세 번째 주사위를 던진 값이 이전 두 개보다 높다는 점을 염두에 두어야 합니다.

A가 주사위를 던져 2를 기록하고 B가 주사위를 던져 3을 기록하는 것처럼 C가 더 높은 값을 얻을 확률은 3/6 =1/2입니다. 4, 5, 6이므로 축소 후 확률은 1/2이 됩니다.

따라서 그에 의해 얻을 수 있는 결과는 더욱 줄어들어야 합니다.

입력

A = 3, B = 5

출력

1/6

설명 − 3과 5보다 큰 값은 6뿐이므로 1/6은 확률입니다.

입력

A = 2, B = 4

출력

1/3

설명 − 2와 4보다 높은 값은 5와 6이며 확률은 2/6이며 1/3로 줄일 수 있습니다.

문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다.

  • A와 B의 값 중에서 최대값을 찾습니다.

  • 6에서 A와 B의 최대값을 빼고 gcd를 6으로 계산합니다.

  • 결과를 반환합니다.

알고리즘

Start
Step 1→ probability of getting more value in third dice
   void probab_third(int a, int b)
      declare int c = 6 - max(a, b)
      declare int GCD = __gcd(c, 6)
      Print GCD
Step 2→ In main()
   Declare int a = 2, b = 2
   Call probab_third(a, b)
Stop
호출

#include <bits/stdc++.h>
using namespace std;
//probability of getting more value in third dice
void probab_third(int a, int b){
   int c = 6 - max(a, b);
   int GCD = __gcd(c, 6);
   cout<<"probability of getting more value in third dice : " <<c / GCD << "/" << 6 / GCD;
}
int main(){
   int a = 2, b = 2;
   probab_third(a, b);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

probability of getting more value in third dice : 2/3