how to generate random numbers between a and b?
is there any in-built function?

## All 4 Replies

C++ offers the `rand()` function to generate pseudo-random numbers.
Here's a quick and dirty example using rand.

``````#include<iostream>

int main(int argc,char** argv)
{
int lowBound = 0;
int upBound = 0;
int random = 0;

//Get lower bound (a)
std::cout << "Input lower bound: ";
std::cin >> lowBound;
std::cout << std::endl;

//Get upper bound (b)
std::cout << "Input upper bound: ";
std::cin >> upBound;
std::cout << std::endl;

//Generate the random number in the range a-b using rand()
random = rand() % upBound + lowBound;

//Output
std::cout << "Here is your random number: " << random << ".\n";

return 0;
}``````

Hope this helps!

P.S. `rand()` is good, but it is far from perfect. If you need some of the advanced random distributions, you'll probably need to find a custom library - there are tons available for statistics/probability analysis.

thanks a lot! it worked out... :)

you would also need to seed the linear congruential generator using `srand` .
a beginner's tutorial: http://www.cs.auckland.ac.nz/~jli023/c/RandomNumbers.html

I'd have to agree. That would be a better use since it prevents `rand()` from repeating it's output if given the same input. I've always hated that about `rand()` .

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.