Possible Duplicate:
What’s the Right Way to use the rand() Function in C++?
When I run the below program I always get the same values each time. Is rand not a true random function?
int main()
{
while(1)
{
getch();
cout<<rand()<<endl;
}
}
In each run I am getting the below values.
41
18467
6334
26500
19169
15724
……
Yes and no. rand() is a pseudo random number generator that will always return the same sequence of numbers given the same seed value. Typically one ‘seeds’ the random number generator with some random data and then uses rand() to return a sequence of seemingly random numbers. If your random data isn’t needed for something requiring ‘true’ randomness (such as cryptography based security) just using the current system time is sufficient. However, if you are using it for security purposes, look into obtaining more truly random data from entropy gathering utilities and use that to seed the random number generator.
As aa mentioned, the seed function is referenced here