Документация по LinuxLinuxDoc.Ru 🔍

rand, srand - генерируют случайные числа

НАЗВАНИЕ
rand, srand - генерируют случайные числа

СИНТАКСИС
#include

int rand(void);

void srand(unsigned int seed);

ОПИСАНИЕ
Функция rand() возвращает псевдослучайное число в
диапазоне от нуля до RAND_MAX.

Функция srand() устанавливает свой аргумент как основу
(seed) для новой последовательности псевдослучайных целых
чисел, возвращаемых функцией rand(). Эту
последовательность можно воспроизвести. Для этого
необходимо вызвать srand() с соответствующей величиной
seed.

Если seed не установлено, то функция rand() автоматически
устанавливает его равным 1.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция rand() возвращает псевдослучайное число в
промежутке от нуля до RAND_MAX. Функция srand() не
возвращает значений.

ЗАМЕЧАНИЯ
Версия функций rand() и srand() в библиотеке С для Linux
использует тот же генератор чисел, что и в функциях ran-
dom() и srandom(), так что младшие биты в числе случайны
настолько, насколько и старшие. В то же время в старой
реализации rand() младшие биты являются гораздо менее
случайными, чем старшие

В книге Numerical Recipes in C: The Art of Scientific Com-
puting (William H. Press, Brian P. Flannery, Saul A.
Teukolsky, William T. Vetterling; New York: Cambridge Uni-
versity Press, 1992 (2nd ed., p. 277)) даны следующие
комментарии:
"Если Вы желаете получить случайное число в
промежутке от 1 до 10, Вы всегда должны
использовать старшие биты, например:

j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

не следует выполнять такое действие:

j=1+(rand() % 10);

(т.е. использовать младшие биты)."

Генерация случайных чисел - это трудная тема. В книге
Numerical Recipes in C (см. ссылку выше) есть прекрасная
статья о практической генерации случайных чисел, глава
номер 7 (Random Numbers).

Если Вам необходимы основательные теоретические
рассуждения на эту тему, которые, кстати, являются в
большой степени практическими, загляните в главу #3 (Ran-
dom Numbers) классического труда Donald E. Knuth The Art
of Computer Programming, том #2 (Seminumerical Algo-
rithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley
Publishing Company, 1981.

СООТВЕТСТВИЕ СТАНДАРТАМ
SVID 3, BSD 4.3, ISO 9899
Читать новости Linux в Telegram
Linux - rand, srand - генерируют случайные числа
Мы в соцсетях ✉