Для справки я следовал за этим thread.Пользовательская функция rand() возвращает то же значение
Я называю эту функцию из функции main()
, которая возвращает случайное значение в диапазоне [0, N]
:
int randr(int min, int max) { int r = (rand() % (max+1-min)+min); return r; }
например:
int main()
{
unsigned int r=128;
while(r--)
{
int a = randr(0, 63);
int b = randr(64, 127);
printf("%d %d\n", a, b);
}
return 0;
}
Проблема заключается в том, каждый раз, когда программа выполняется, переменная a
и b
содержат всегда одинаковое сгенерированное значение, почему (я имею в виду, что printf всегда те же данные на терминале)?
Любое учебное пособие по случайным числам даст ответ. – chris
Перед использованием rand() необходимо установить произвольное семя. – taocp
Возможный дубликат [Почему у меня всегда получается одна и та же последовательность случайных чисел с rand()?] (Http://stackoverflow.com/questions/1108780/why-do-i-always-get-the-same-sequence -of-random-numbers-with-rand) – Blastfurnace