Я не понимаю значение srand()
в <time.h>
, чтобы создать случайное число. Вот мой код:Значение srand()
/* srand example */
#include <stdio.h> /* printf, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main()
{
printf ("First number: %d\n", rand()%100);
srand (time(NULL));
printf ("Random number: %d\n", rand()%100);
srand (1);
printf ("Again the first number: %d\n", rand()%100);
return 0;
}
и результаты:
First number: 41
Random number: 13
Again the first number: 41
Почему результат srand(1)
отличного от srand(2)
? Почему результаты srand(1)
или srand(2)
продолжают появляться снова и снова? И почему я должен использовать srand(time(NULL))
, чтобы создать динамическое случайное число?
читайте это: http://www.cplusplus.com/reference/cstdlib/srand/ –
Почему это помечены c и C++? В C++ 'rand()' не должен использоваться вообще, он устарел и [считается вредным] (http://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful). – leemes
@leemes 'rand()' не является устаревшим и не считается вредным для C++. Он определенно имеет свои ограничения, но это верно с первых дней C. –