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

Recommended Answers

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.