Probabilidad de obtener más valor en el tercer lanzamiento de dados

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>
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *