std::rand

From cppreference.com
 
 
 
Pseudo-random number generation
Engines and engine adaptors
linear_congruential_engine (C++11)
mersenne_twister_engine (C++11)
subtract_with_carry_engine (C++11)
discard_block_engine (C++11)
independent_bits_engine (C++11)
shuffle_order_engine (C++11)
Generators
random_device (C++11)
Distributions
Uniform distributions
uniform_int_distribution (C++11)
uniform_real_distribution (C++11)
generate_canonical (C++11)
Bernoulli distributions
bernoulli_distribution (C++11)
binomial_distribution (C++11)
negative_binomial_distribution (C++11)
geometric_distribution (C++11)
Poisson distributions
poisson_distribution (C++11)
exponential_distribution (C++11)
gamma_distribution (C++11)
weibull_distribution (C++11)
extreme_value_distribution (C++11)
Normal distributions
normal_distribution (C++11)
lognormal_distribution (C++11)
chi_squared_distribution (C++11)
cauchy_distribution (C++11)
fisher_f_distribution (C++11)
student_t_distribution (C++11)
Sampling distributions
discrete_distribution (C++11)
piecewise_constant_distribution (C++11)
piecewise_linear_distribution (C++11)
Seed Sequences
seed_seq (C++11)
C library
rand
srand
RAND_MAX
 
Defined in header <cstdlib>
int rand();

Returns a pseudo-random integral value between 0 and RAND_MAX (0 and RAND_MAX included).

srand() seeds the pseudo-random number generator used by rand(). If rand() is used before any calls to srand(), rand() behaves as if it was seeded with srand(1).

Each time rand() is seeded with srand(), it must produce the same sequence of values on successive calls. Other functions in the standard library may call rand, it is implementation-defined which functions do so.

It is implementation-defined whether rand() is thread-safe.

Contents

[edit] Parameters

(none)

[edit] Return value

Pseudo-random integral value between 0 and RAND_MAX.

[edit] Notes

There are no guarantees as to the quality of the random sequence produced. In the past, some implementations of rand() have had serious shortcomings in the randomness, distribution and period of the sequence produced (in one well-known example, the low-order bit simply alternated between 1 and 0 between calls).

rand() is not recommended for serious random-number generation needs, like cryptography.

[edit] Example

#include <cstdlib>
#include <iostream>
#include <ctime>
 
int main() 
{
    std::srand(std::time(0)); // use current time as seed for random generator
    int random_variable = std::rand();
    std::cout << "Random value on [0 " << RAND_MAX << "]: " 
              << random_variable << '\n';
}

Possible output:

Random value on [0 2147483647]: 1373858591

[edit] See also

seeds pseudo-random number generator
(function)