Задать вопрос
@Yonghwa
121

Что означает time при использовании этого класса?

What up, программач.

при генерации случайных числе, используются классы из библиотеки boost(Поправьте, если я ошибаюсь)
Вот код
mt19937 randomGenerator (time(NULL);
uniform_int_distribution attackRoll(1, 9);

Те, кто шарят, поймет легко этот код.Так вот, объясните пожалуйста простым языком, что тут time означает, его параметр NULL и все в этом духе.
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C++
mersenne_twister_engine - вот сам класс mt19937 (сейчас он уже в std есть, так что не факт что буст используется), вот его конструктор: mersenne_twister_engine/mersenne_twister_engine, вот что пишут про его единственный параметр:
> value - seed value to use in the initialization of the internal state
Т.е. это зерно для вашего рандом-генератора. Как часто это делается в задачах, не требующих высокого уровня безопасности, зерном берется текущее время.
А вот собственно функция time. Она принимает один параметр - указатель на time_t, и возвращает также time_t. В любом случае она вернет текущее время, если же вы в кач. первого параметра передадите ненулевой указатель, то она еще и по нему запишет текущее время. В вашем примере передается NULL, т.к. используется возвращаемое значение.
А вот это - uniform_int_distribution - класс равномерного распределения случайной величины. Скорее всего дальше по коду он используется вместе с рандом-генератором для получения значений случайной величины, удовлетворяющих этому равномерному распределению.
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
Учитесь пользоваться гуглом: www.cplusplus.com/reference/ctime - получено по запросу "C time"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы