У меня здесь странная проблема, и я не могу найти хорошее объяснение этому, поэтому я подумал спросить вас, ребята:
Рассмотрим следующий метод:
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 каждый раз, а только один раз за время жизни моего приложения, он работает отлично ...
Мой вопрос: почему?