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.
Note for implementation:
- 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.
- 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:
Leave a Reply