std:: srand
Common mathematical functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mathematical special functions (C++17) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mathematical constants (C++20) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Basic linear algebra algorithms (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data-parallel types (
simd
)
(C++26)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Floating-point environment (C++11) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Complex numbers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Numeric array (
valarray
)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pseudo-random number generation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Factor operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Interpolations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Saturation arithmetic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Generic numeric operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bit operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Defined in header
<cstdlib>
|
||
void
srand
(
unsigned
seed
)
;
|
||
Seeds the pseudo-random number generator used by
std::rand()
with the value
seed
.
If
std::rand()
is used before any calls to
srand()
,
std::rand()
behaves as if it was seeded with
srand
(
1
)
.
Each time
std::rand()
is seeded with the same
seed
, it must produce the same sequence of values.
srand()
is not guaranteed to be thread-safe.
Parameters
seed | - | the seed value |
Return value
(none)
Notes
Generally speaking, the pseudo-random number generator should only be seeded once, before any calls to
rand()
, at the start of the program.
It should not be repeatedly seeded, or reseeded every time you wish to generate a new batch of pseudo-random numbers.
Standard practice is to use the result of a call to std:: time ( 0 ) as the seed. However, std::time returns a std:: time_t value, and std:: time_t is not guaranteed to be an integral type. In practice, though, every major implementation defines std:: time_t to be an integral type, and this is also what POSIX requires.
Example
Possible output:
Random value on [0, 2147483647]: 1373858591
See also
generates a pseudo-random number
(function) |
|
maximum possible value generated by
std::rand
(macro constant) |
|
reseeds the per-thread random engine
(function) |
|
C documentation
for
srand
|