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

std::rand

Материал из cppreference.com
< cpp‎ | numeric‎ | random
 
 
Numerics библиотеки
Общие математические функции
Плавающей точкой окружающей среды
Комплексные числа
Числовых массивов
Псевдослучайных чисел поколения
Во время компиляции рациональной арифметики (C++11)
Generic числовые операции
Оригинал:
Generic numeric operations
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
Псевдослучайных чисел поколения
Двигатели и адаптеры
Оригинал:
Engines and engine adaptors
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Генераторы
Оригинал:
Generators
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Распределения
Оригинал:
Distributions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Равномерное распределение
Оригинал:
Uniform distributions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Бернулли распределения
Оригинал:
Bernoulli distributions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Распределения Пуассона
Оригинал:
Poisson distributions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Нормальное распределение
Оригинал:
Normal distributions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Выборка распределения
Оригинал:
Sampling distributions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Семенной последовательности
Оригинал:
Seed Sequences
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
C библиотеки
Оригинал:
C library
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
rand
 
Defined in header <cstdlib>
int rand();

Возвращает целое псевдо-случайное число между 0 и RAND_MAX (включая 0 и RAND_MAX).

std::srand() инициализирует генератор псевдо-случайных чисел, используемый в rand(). Если rand() был вызван до использования srand(), то rand() ведет себя так, как будто последовательность случайных чисел была задана путём вызова srand(1).

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

Гарантий потокобезопасности rand() нет, это определяется реализацией стандартной библиотеки.

Содержание

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

(Нет)

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

Псевдо-случайное целое число между 0 и RAND_MAX (включая 0 и RAND_MAX).

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

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

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

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

#include <cstdlib>
#include <iostream>
#include <ctime>
 
int main()
{
    // Используем текущее время как начальное значение для генератора случайных чисел
    std::srand(unsigned(std::time(0)));
    int random_variable = std::rand();
    std::cout << "Случайное значение на отрезке [0 " << RAND_MAX << "]: "
              << random_variable << '\n';
}

Возможный вывод:

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

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

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