Что такое хорошая функция Random, которая будет отличаться при каждом запуске? - PullRequest
0 голосов
/ 12 января 2012

Я использую функцию rand (), но она всегда использует одну и ту же случайную последовательность. Есть ли случайная функция, которая начинается со значения часов? И как бы я это сделал?

Ответы [ 2 ]

1 голос
/ 12 января 2012

rand() требует от вас указать семена. Лучший способ указать начальное значение - использовать текущее время.

// specify the seed
srand(time(NULL));

Или вы можете использовать arc4random .

0 голосов
/ 12 января 2012

Вы должны сеять rand() и random() (немного больше места) самостоятельно, с соответствующими функциями посева, перед их использованием.Вы можете использовать время или любое другое значение по вашему желанию:

srand(time(0));
srandom(time(0));

Здесь мы получаем системное время;очевидно, что передача константы будет приводить к одной и той же последовательности при каждом запуске.

Вы также можете использовать arc4random(), который генерирует случайные биты очень высокого качества и обрабатывает сам себя, используя /dev/random.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...