Пространства имён
Варианты
Действия

rand

Материал из cppreference.com
< c‎ | numeric‎ | random
Defined in header <stdlib.h>
int rand();
Возвращает псевдослучайное целое значение между 0 и RAND_MAX включительно.
Оригинал:
Returns a uniformly distributed pseudo-random integral value between 0 and RAND_MAX (0 and RAND_MAX included).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
srand() должна быть вызвана перед любыми вызовами rand() для инициализации генератора случайных чисел.
Оригинал:
srand() should be called before any calls to rand() to initialize the random number generator.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Если rand() вызывается до первого вызова srand(), то rand() ведет себя так, как если бы был сделан вызов srand(1), и возвращает одну и ту же последовательность чисел между запусками программы. Потокобезопасность srand() не гарантирована и зависит от реализации.

Содержание

[править] Параметры

(Нет)

[править] Возвращаемое значение

Псевдослучайное целое значение между 0 и RAND_MAX.
Оригинал:
Pseudo-random integral value between 0 and RAND_MAX.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Примечания

Нет гарантии в качестве произведенной случайной последовательности. Раньше некоторые реализации rand() имели большие недостатки в составлении случайной последовательности. Для серьезных нужд, например в криптографии, метод rand() использовать не рекомендуется.

В POSIX требуется, чтобы период, который использует генератор псевдослучайных чисел, был как минимум 2^32.

POSIX предложил потокобезопасную версию - rand_r, но она устарела и на её замену пришло семейство функций - drand48.

[править] Пример

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    srand(time(0)); //используем текущее время, как начальное значение для генератора случайных чисел
    int random_variable = rand();
    printf("Случайное значение в промежутке [от 0 до %d]: %d\n", RAND_MAX, random_variable);
}

Вывод:

Случайное значение в промежутке [от 0 до 2147483647]: 1373858591

[править] См. также

инициализирует генератор псевдослучайных чисел
(функция) [править]
C++ documentation для rand