Я написал простой генератор случайных чисел в C. int l
- нижняя граница, а int u
- верхняя граница.
Это работает отлично, однако у меня есть вопрос относительно его посева. Если бы я запускал это в цикле, time(NULL)
не меняет начальное значение достаточно быстро, чтобы избежать возможности последовательной серии случайных чисел, которые являются точно такими же.
Мне интересно, как кто-то другой мог подойти к этой проблеме. Все примеры, которые я нашел в Интернете, используют time(NULL)
в качестве генератора исходных значений.
int generateRandom(int l, int u)
{
srand(time(NULL));
int r = rand() % ((u - l) + 1);
r = l + r;
return r;
}
Если бы я должен был запускать эти строки кода рядом друг с другом, то оба Rand1
и Rand2
были бы точно такими же.
printf("Rand1 = %d\n", generateRandom(10, 46));
printf("Rand2 = %d\n", generateRandom(10, 46));