У меня здесь странная проблема, и я не могу найти для этого хорошего объяснения, поэтому я подумал спросить вас, ребята:
Рассмотрим следующий метод:
int MathUtility::randomize(int Min, int Max)
{
qsrand(QTime::currentTime().msec());
if (Min > Max)
{
int Temp = Min;
Min = Max;
Max = Temp;
}
return ((rand()%(Max-Min+1))+Min);
}
Я не буду объяснять вам, гуру, что этот метод на самом деле делает, я объясню свою проблему:
Я понял, что когда я вызываю этот метод в цикле, иногда, я получаю одно и то же случайное число снова и снова... Например, этот фрагмент...
for(int i=0; i<10; ++i)
{
int Index = MathUtility::randomize(0, 1000);
qDebug() << Index;
}
... создаст что-то вроде:
567 567 567 567... и т.д....
Я тоже понял, что, если я не буду называть qsrand каждый раз, но только один раз в течение моего жизненного цикла приложения, он отлично работает...
Мой вопрос: Почему?