srand - это функция, определенная в стандартной библиотеке C, которая устанавливает для генератора случайных чисел определенное начальное начальное число.
Что генератор случайных чисел делает для генерации чисел подпоследовательности, если он принимает текущий вводи применяет некоторые вычисления, основанные на текущем значении.
Все будущие вызовы rand () с данным известным начальным начальным числом могут быть фактически детерминированными.Вот почему он называется «Генератор псевдослучайных чисел».
Так что, если, например, вы запускали свою программу каждый раз с srand (100) - и выводили rand () несколько раз - весь вашвыходные данные каждого прогона будут идентичны.
Теперь, что делает функция clock (), принимает ли она текущее время в миллисекундах и использует это в качестве начального начального числа.
Поскольку текущее времячто-то, что постоянно меняется, и миллисекунды текущего времени не так легко определить, что именно в то время, когда вызывается операция clock (), - это своего рода хороший способ получить «случайный» запусксемена.
РЕДАКТИРОВАТЬ
clock () фактически возвращает время процессора, затраченное программой.
Вы можете взглянуть на Какполучать текущую временную метку в миллисекундах с 1970 года точно так же, как Java получает
Вы должны быть немного осторожны с time_t time (time_t * timer), определенным в "time.h", поскольку оно не переносимо на платформах,
Эти функции srand и rand, однако, не рекомендуются и не рекомендуются в C ++ 11, который определяет случайный класс.Вы можете посмотреть здесь: http://en.cppreference.com/w/cpp/numeric/random