Given that the three players playing a game of rolling dice. Player1 rolled a die got A and player2 rolled a die got B. The task is to find the probability of player3 to win the match and Player3 wins if he gets more than both of them.
Examples:
Input: A = 2, B = 3 Output: 1/2 Player3 wins if he gets 4 or 5 or 6 Input: A = 1, B = 2 Output: 2/3 Player3 wins if he gets 3 or 4 or 5 or 6
Approach: The idea is to find the maximum of A and B and then 6-max(A, B) gives us the remaining numbers C should get to win the match. So, one can find the answer dividing 6-max(A, B) and 6 with GCD of these two.
C++
// CPP program to find probability to C win the match #include <bits/stdc++.h> using namespace std; // function to find probability to C win the match void Probability( int A, int B) { int C = 6 - max(A, B); int gcd = __gcd(C, 6); cout << C / gcd << "/" << 6 / gcd; } // Driver code int main() { int A = 2, B = 4; // function call Probability(A, B); return 0; } |
Java
// Java program to find probability to C win the match import java.io.*; class GFG { // Recursive function to return gcd of a and b static int __gcd( int a, int b) { // Everything divides 0 if (a == 0 ) return b; if (b == 0 ) return a; // base case if (a == b) return a; // a is greater if (a > b) return __gcd(a-b, b); return __gcd(a, b-a); } // function to find probability to C win the match static void Probability( int A, int B) { int C = 6 - Math.max(A, B); int gcd = __gcd(C, 6 ); System.out.print( C / gcd + "/" + 6 / gcd); } // Driver code public static void main (String[] args) { int A = 2 , B = 4 ; // function call Probability(A, B); } } // This code is contributed by shs.. |
Python 3
# Python 3 program to find probability # to C win the match # import gcd() from math lib. from math import gcd # function to find probability # to C win the match def Probability(A, B) : C = 6 - max (A, B) __gcd = gcd(C, 6 ) print (C / / __gcd, "/" , 6 / / __gcd) # Driver Code if __name__ = = "__main__" : A, B = 2 , 4 # function call Probability(A, B) # This code is contributed by ANKITRAI1 |
C#
// C# program to find probability // to C win the match using System; class GFG { // Recursive function to return // gcd of a and b static int __gcd( int a, int b) { // Everything divides 0 if (a == 0) return b; if (b == 0) return a; // base case if (a == b) return a; // a is greater if (a > b) return __gcd(a - b, b); return __gcd(a, b - a); } // function to find probability // to C win the match static void Probability( int A, int B) { int C = 6 - Math.Max(A, B); int gcd = __gcd(C, 6); Console.Write(C / gcd + "/" + 6 / gcd); } // Driver code static public void Main () { int A = 2, B = 4; // function call Probability(A, B); } } // This code is contributed by ajit. |
PHP
<?php // PHP program to find probability // to C win the match // Find gcd() function __gcd( $a , $b ) { if ( $b == 0) return $a ; return __gcd( $b , $a % $b ); } // function to find probability // to C win the match function Probability( $A , $B ) { $C = 6 - max( $A , $B ); $gcd = __gcd( $C , 6); echo ( $C / $gcd ) . "/" . (6 / $gcd ); } // Driver code $A = 2; $B = 4; // function call Probability( $A , $B ); // This code is contributed by mits ?> |
Javascript
<script> // Javascript program to find probability // to C win the match // Recursive function to return // gcd of a and b function __gcd(a, b) { // Everything divides 0 if (a == 0) return b; if (b == 0) return a; // base case if (a == b) return a; // a is greater if (a > b) return __gcd(a - b, b); return __gcd(a, b - a); } // function to find probability // to C win the match function Probability(A, B) { let C = 6 - Math.max(A, B); let gcd = __gcd(C, 6); document.write(parseInt(C / gcd, 10) + "/" + parseInt(6 / gcd, 10)); } let A = 2, B = 4; // function call Probability(A, B); </script> |
Output:
1/3
Time Complexity: O(log(min(a, b))), where a and b are two parameters of gcd.
Auxiliary Space: O(log(min(a, b)))
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!