Probability of getting a sum on throwing 2 Dices N times

Given the sum. The task is to find out the probability of occurring that sum on the thrown of the two dice N times.
Probability is defined as the favorable numbers of outcomes upon total numbers of the outcome. Probability always lies between 0 and 1.

Examples:

Input: sum = 11, times = 1
Output: 2 / 36
favorable outcomes = (5, 6) and (6, 5) i.e 2
Total outcomes = (1, 1), (1, 2), (1, 3)...(6, 6) i.e 36
Probability = (2 / 36)

Input: sum = 7, times = 7
Output: 1 / 279936


Formula:-

The probability of occurring sum on throwing 2 dices N times = (favorable/total) ^ N

Approach:-

First of All, Calculates the probability of Occurring that sum on thrown of 2 dice 1 times.
Let say it Probability1.
Now, to calculate the Probability of occurring that sum on thrown of 2 dice N times be:
Probability2 = (Probability1) ^ N. i.e Probability1 raise to power N


Below is the implementation of above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
  
// function that calculates Probability.
int Probability(int sum, int times)
{
  
    float favorable = 0.0, total = 36.0;
    long int probability = 0;
  
    // To calculate favorable outcomes
    // in thrown of 2 dices 1 times.
    for (int i = 1; i <= 6; i++) {
        for (int j = 1; j <= 6; j++) {
            if ((i + j) == sum)
                favorable++;
        }
    }
  
    int gcd1 = __gcd((int)favorable, (int)total);
  
    // Reduce to simplest Form.
    favorable = favorable / (float)gcd1;
    total = total / (float)gcd1;
  
    // Probability of occuring sum on 2 dice N times.
    probability = pow(total, times);
  
    return probability;
}
  
// Driver Code
int main()
{
    int sum = 7, times = 7;
  
    cout << "1"
         << "/" << Probability(sum, times);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of above approach
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 that calculates 
// Probability.
static long Probability(int sum,
                        int times)
{
  
    float favorable = 0, total = 36;
    long probability = 0;
  
    // To calculate favorable outcomes
    // in thrown of 2 dices 1 times.
    for (int i = 1; i <= 6; i++) 
    {
        for (int j = 1; j <= 6; j++)
        {
            if ((i + j) == sum)
                favorable++;
        }
    }
  
    int gcd1 = __gcd((int)favorable, 
                     (int)total);
  
    // Reduce to simplest Form.
    favorable = favorable / (float)gcd1;
    total = total / (float)gcd1;
  
    // Probability of occuring 
    // sum on 2 dice N times.
    probability = (long)Math.pow(total, times);
  
    return probability;
}
  
// Driver Code
public static void main (String[] args) 
{
    int sum = 7, times = 7;
      
    System.out.println( "1" + "/"
          Probability(sum, times));
}
}
  
// This code is contributed 
// by inder_verma

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 implementation of above approach
  
# from math import everything
from math import *
  
# function that calculates Probability.
def Probability(sum, times) :
    favorable, total, probability = 0.0, 36.0, 0
  
    # To calculate favorable outcomes 
    # in thrown of 2 dices 1 times. 
    for i in range(7) :
        for j in range(7) :
            if ((i + j) == sum) :
                favorable += 1
  
    gcd1 = gcd(int(favorable), int(total))
  
    # Reduce to simplest Form. 
    favorable = favorable / gcd1
    total = total / gcd1
  
    # Probability of occuring sum on 2 dice N times.
    probability = pow(total, times)
  
    return int(probability)
  
  
# Driver Code
if __name__ == "__main__" :
  
    sum, times = 7, 7
  
    print("1","/",Probability(sum, times))
  
  
# This code is contributed by ANKITRAI1

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of above approach
  
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 that calculates 
// Probability.
static long Probability(int sum,
                        int times)
{
  
    float favorable = 0, total = 36;
    long probability = 0;
  
    // To calculate favorable outcomes
    // in thrown of 2 dices 1 times.
    for (int i = 1; i <= 6; i++) 
    {
        for (int j = 1; j <= 6; j++)
        {
            if ((i + j) == sum)
                favorable++;
        }
    }
  
    int gcd1 = __gcd((int)favorable, 
                    (int)total);
  
    // Reduce to simplest Form.
    favorable = favorable / (float)gcd1;
    total = total / (float)gcd1;
  
    // Probability of occuring 
    // sum on 2 dice N times.
    probability = (long)System.Math.Pow(total, times);
  
    return probability;
}
  
// Driver Code
public static void Main() 
{
    int sum = 7, times = 7;
      
    System.Console.WriteLine( "1" + "/"
        Probability(sum, times));
}
}
  
// This code is contributed 
// by mits

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of above approach
  
// function to calculate gcd
function getGCDBetween($a, $b)
{
    while ($b != 0)
    {
        $m = $a % $b;
        $a = $b;
        $b = $m;
    }
    return $a;
}
  
// function that calculates Probability.
function Probability($sum, $times)
{
  
    $favorable = 0.0;
    $total = 36.0;
    $probability = 0;
  
    // To calculate favorable outcomes
    // in thrown of 2 dices 1 times.
    for ($i = 1; $i <= 6; $i++) 
    {
        for ($j = 1; $j <= 6; $j++) 
        {
            if (($i + $j) == $sum)
                $favorable++;
        }
    }
  
    $gcd1 = getGCDBetween((int)$favorable
                          (int)$total);
  
    // Reduce to simplest Form.
    $favorable = $favorable / (float)$gcd1;
    $total = $total / (float)$gcd1;
  
    // Probability of occuring 
    // sum on 2 dice N times.
    $probability = pow($total, $times);
  
    return $probability;
}
  
// Driver Code
$sum = 7;
$times = 7;
  
echo "1", "/", Probability($sum, $times);
  
// This code is contributed by ash264    
?>

chevron_right


Output:

1/279936


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.