# Binomial Random Variables

In this post, we’ll discuss Binomial Random Variables.

Prerequisite : Random Variables

A specific type of discrete random variable that counts how often a particular event occurs in a fixed number of tries or trials.

For a variable to be a binomial random variable, ALL of the following conditions must be met:

1. There are a fixed number of trials (a fixed sample size).
2. On each trial, the event of interest either occurs or does not.
3. The probability of occurrence (or not) is the same on each trial.
4. Trials are independent of one another.

Mathematical Notations

```n = number of trials
p = probability of success in each trial
k = number of success in n trials
```

Now we try to find out probability of k success in n trials.

Here probability of success in each trial is p independent of other trials.
So we first choose k trials in which there will be success and in rest n-k trials there will be failure. Number of ways to do so is

Since all n events are independent, hence probability of k success in n trials is equivalent to multiplication of probability for each trial.

Here its k success and n-k failures, So probability for each way to achieve k success and n-k failure is

Hence final probability is

```(number of ways to achieve k success
and n-k failures)
*
(probability for each way to achieve k
success and n-k failure)
```

Then Binomial Random Variable Probability is given by:

Let X be binomial random variable with number of trials n and probability of success in each trial be p.
Expected number of success is given by

```E[X] = np
```

Variance of number of success is given by

```Var[X] = np(1-p)
```

Example 1 : Consider a random experiment in which a biased coin (probability of head = 1/3) is thrown for 10 times. Find probabilit that number of heads appearing will be 5.

Solution :

```Let X be binomial random variable
with n = 10 and p = 1/3
P(X=5) = ?

```

Here is a C++ code for the same

## C++

```// C++ program to compute Binomial Probability
#include <iostream>
#include <cmath>
using namespace std;

// function to calculate nCr i.e., number of
// ways to choose r out of n objects
int nCr(int n, int r)
{
// Since nCr is same as nC(n-r)
// To decrease number of iterations
if (r > n / 2)
r = n - r;

for (int i = 1; i <= r; i++) {
answer *= (n - r + i);
}

}

// function to calculate binomial r.v. probability
float binomialProbability(int n, int k, float p)
{
return nCr(n, k) * pow(p, k) *
pow(1 - p, n - k);
}

// Driver code
int main()
{

int n = 10;
int k = 5;
float p = 1.0 / 3;

float probability = binomialProbability(n, k, p);

cout << "Probability of " << k;
cout << " heads when a coin is tossed " << n;
cout << " times where probability of each head is " << p << endl;
cout << " is = " << probability << endl;
}
```

## Java

```// Java program to compute Binomial Probability

import java.util.*;

class GFG
{
// function to calculate nCr i.e., number of
// ways to choose r out of n objects
static int nCr(int n, int r)
{
// Since nCr is same as nC(n-r)
// To decrease number of iterations
if (r > n / 2)
r = n - r;

for (int i = 1; i <= r; i++) {
answer *= (n - r + i);
}

}

// function to calculate binomial r.v. probability
static float binomialProbability(int n, int k, float p)
{
return nCr(n, k) * (float)Math.pow(p, k) *
(float)Math.pow(1 - p, n - k);
}

// Driver code
public static void main(String[] args)
{
int n = 10;
int k = 5;
float p = (float)1.0 / 3;

float probability = binomialProbability(n, k, p);

System.out.print("Probability of " +k);
System.out.print(" heads when a coin is tossed " +n);
System.out.println(" times where probability of each head is " +p);
System.out.println( " is = " + probability );
}
}

/* This code is contributed by Mr. Somesh Awasthi */
```

Output:

```Probability of 5 heads when a coin is tossed 10 times where probability of each head is 0.333333
is = 0.136565
```

Reference :
stat200

This article is contributed by Pratik Chhajer . 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.

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
3 Average Difficulty : 3/5.0
Based on 1 vote(s)