Почему мы можем использовать srand (clock ()) в c ++? - PullRequest
0 голосов
/ 10 июня 2018

srand (clock ()) в c ++?Раньше я проводил курс по с ++. В этом конкретном курсе я столкнулся с этой проблемой. Но я не знаю, каково истинное значение этой функции в с ++?

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Почему мы можем использовать srand (clock ())?Потому что

  1. srand инициализирует последовательность случайных чисел.
  2. Не хочу, чтобы один и тот же результат каждый раз в симуляции.
  3. Часы возвращают процессорвремя, затрачиваемое программой.

    Возвращаемое значение выражается в тактах.

  4. Мелкозернистый и отличается при запуске main ().

0 голосов
/ 10 июня 2018

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

...