How to Generate Random Number in Range in C++?
In C++, we have a <random> header that consists of standard library facilities for random number generation. In this article, we will learn how to generate a random number in range in C++.
Example:
Input:
Range: 1 to 20
Output:
Random number between 1 and 20 is: 18
Generating a Random Number in a Range in C++
To generate a random number in a range we have to make use of <random> library functionalities by following the below approach:
Approach:
- Get a seed for the random number engine by creating a random_device rd object.
- Seed an mt19937 object with the rd.
- Now, create a uniform_int_distribution<> object. This models a random number generator that produces uniformly distributed integers within a specified range. Pass the minimum and maximum values of the range as parameters.
- Call the distributor by passing the generator as a parameter to it to get a generated random number in a range.
C++ Program to Generate a Random Number in a Range
The below program demonstrates how we can generate a random number in a given range in C++.
// C++ program to generate a random number in a range
#include <iostream>
#include <random>
using namespace std;
int main()
{
// Define range
int min = 1;
int max = 20;
// Initialize a random number generator
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> distrib(min, max);
// Generate random number in the range [min, max]
int randomValue = distrib(gen);
cout << "Random number between " << min << " and "
<< max << " is " << randomValue << endl;
return 0;
}
Output
Random number between 1 and 20 is 18
Time Complexity: O(1)
Auxiliary Space: O(1)
Contact Us