Normal Distribution in C++

In this tutorial, we will learn about normal distribution and its implementation in C++. Before proceeding further let’s first understand what is a normal distribution.

Normal Distribution: 

  • It is a continuous probability distribution.
  • A continuous random variable X is said to follow the normal distribution with parameters μ (called mean) and σ² (called variance) if its probability density function is given by

P(x)= (1/√2πσ²)* e-( x-μ )²/2σ²

where μ is the mean of the distribution

σ is the standard deviation and

σ² is the variance.

normal distribution in C++

Note for implementation:

  1. Make sure C++11 support is enabled in the compiler of your IDE. Otherwise, it will give you errors. I am using Dev C++ so I will tell you the steps of enabling c++11 support in Dev C++. These steps will be similar for other IDE. So the steps are as follows: 1) Go to file -> create new project 2) Select Empty Project 3) Type project name and click ‘ok’ 4) Type filename and click ‘save’ 5) Go to Project -> Project Options 6) Go to parameters tab and type “-std=c++11” under C++ compiler section. 7) Type and run the below code.
  2. It is not necessary that you will get the same output that I have got. Each time when you run below code you will get different output (distribution).

Program to implement Normal Distribution in C++

#include<iostream> 
#include<chrono> 
#include<random> 
using namespace std; 
  
int main() 
{ 
    /* Create random engine with the help of seed */
    unsigned seed = chrono::steady_clock::now().time_since_epoch().count(); 
    default_random_engine e (seed); 
  
    /* declaring normal distribution object 'distN' and initializing its mean and standard deviation fields. */
	/* Mean and standard deviation are distribution parameters of Normal distribution. Here, we have used mean=5, and standard deviation=2. You can take mean and standard deviation as per your choice */
    normal_distribution<double> distN(5,2); 
    
    int n;
    cout<<"\nEnter no. of samples: ";
    cin>>n;
    cout<<"\nNormal distribution for "<<n<<" samples (mean=5, standard deviation=2) =>\n";
    for (int i=1; i<=n; i++)
    {
      cout<<i<<". "<<distN(e)<<"\n"; 
  	}   
  
  return 0; 
}

Input/Output:

Enter no. of samples: 10

Normal distribution for 10 samples (mean=5, standard deviation=2) =>
1. 6.01492
2. 7.18826
3. 4.44432
4. 6.03708
5. 5.93383
6. 4.43706
7. 8.45193
8. 3.75018
9. 1.58229
10. 4.0596

You may also learn:

  1. Add watermark to an image in C++
  2. Add prefix or suffix to each element in a list in C++

Leave a Reply

Your email address will not be published. Required fields are marked *