Я понимаю, что функция rand() генерирует одинаковое число (число), которое вы запускаете, если вы не меняете номер семени. То, что приходит srand(). Время всегда меняется, поэтому я знаю, что вы должны передать параметр времени (null) в srand. Мой вопрос связан с приведенным ниже кодом с учебного сайта.
int main()
{
int i, n=5;
time_t t;
/* Intializes random number generator */
srand((unsigned) time(&t));
/* Print 5 random numbers from 0 to 50 */
for( i = 0 ; i < n ; i++ ) {
printf("%d\n", rand() % 50);
}
return(0);
}
Я не вижу ссылки из srand
((unsigned) time(&t));
и rand.
printf("%d\n", rand() % 50);
Где связь между rand и srand? Я имею в виду или ожидаю, что я предполагаю, что rand() получит некоторый параметр из srand(), чтобы он каждый раз генерировал разные числа. Я предполагаю, что это будет выглядеть как rand (srand (time (null));
Это похоже на инициализацию переменной, не используя ее для меня. srand инициализируется, но я не вижу, чтобы он использовался.
Производит ли rand разные числа, потому что srand вызывается первым перед rand?