Teniendo en cuenta que los tres jugadores juegan un juego de tirar los dados. El jugador 1 lanzó un dado y obtuvo A y el jugador 2 lanzó un dado y obtuvo B. La tarea es encontrar la probabilidad de que el jugador 3 gane el partido y el jugador 3 gana si obtiene más que ambos.
Ejemplos:
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
Enfoque: La idea es encontrar el máximo de A y B y luego 6-max(A, B) nos da los números restantes que C debe obtener para ganar el partido. Entonces, uno puede encontrar la respuesta dividiendo 6-max(A, B) y 6 con GCD de estos dos.
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>
1/3
Complejidad de tiempo: O(log(min(a, b))), donde a y b son dos parámetros de gcd.
Espacio auxiliar: O(log(min(a, b)))
Publicación traducida automáticamente
Artículo escrito por pawan_asipu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA