Skip to content
Related Articles

Related Articles

Improve Article
Probability of getting a sum on throwing 2 Dices N times
  • Last Updated : 14 Apr, 2021

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++




// 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 occurring 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;
}

Java




// 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 occurring
    // 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

Python 3




# 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 occurring 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

C#




// 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 occurring
    // 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

PHP




<?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 occurring
    // 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   
?>

Javascript




<script>
 
// Javascript implementation of above approach
 
// 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 that calculates Probability.
function Probability(sum, times)
{
    var favorable = 0.0, total = 36.0;
    var probability = 0;
 
    // To calculate favorable outcomes
    // in thrown of 2 dices 1 times.
    for (var i = 1; i <= 6; i++) {
        for (var j = 1; j <= 6; j++) {
            if ((i + j) == sum)
                favorable++;
        }
    }
 
    var gcd1 = __gcd(favorable, total);
 
    // Reduce to simplest Form.
    favorable = favorable / gcd1;
    total = total / gcd1;
 
    // Probability of occurring sum on 2 dice N times.
    probability = Math.pow(total, times);
 
    return probability;
}
 
// Driver Code
var sum = 7, times = 7;
document.write( "1"
    + "/" + Probability(sum, times));
 
</script>
Output: 
1/279936

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes




My Personal Notes arrow_drop_up
Recommended Articles
Page :