How do I generate a random number in C++ with a set range?
srand(time(NULL));
to seed you number in you initialization and then whenever you want a new number you would call
int newrandomnum = rand() % num;
This will produce a number from 0 to num - 1.
You have to #include <time.h> for time and I think stdlib.h for the rand() though I'm not to sure.
Big Daddy Scat
{
return(rand()%(hi-lo+1)+lo);
}
Get off my lawn!
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
the rand()%x function only uses lower-order bits and will generate a much LESS random number( Numbers are never completely random in computers ) then the first method.
Yeah it seems much more complex, but just through it in a function.
On the otherhand if you don't really care how random the numbers really are and thats not important to you, the simpler way will work.
------------------
Gary
Midnights Dawning Software
http://dawning.dhs.org
Midnights Dawning Software
http://dawning.dhs.org
The following macro will return a random number between min(inclusive) and max(exclusive):
#define randomRange(min, max) ( (int)(min + (max-min)*rand()/(RAND_MAX+1.0)) )
randomRange(1, 10) will then return a random integer between 1 and 10.
You will also need to #include and call srand(time(NULL)); as mentioned by others. #include is not strictly necessary, since you are not using the time_t structure in the call to time().
Regards,
White Fire
------------------
|
|/
|\evin Clancy
|/
|evin Clancy
White Fire