在线文档教程
C++
数字 | Numerics

std::srand

STD:SRAND

Defined in header
void srand( unsigned seed

使用的伪随机数生成器种子。std::rand()有价值seed...

如果rand()在调用srand(),,,rand()表现得好像它是被播种的srand(1)...

每次rand()都是一样的seed,它必须产生相同的值序列。

srand()不能保证线程安全。

参数

seed-the seed value

返回值

%280%29

注记

一般情况下,伪随机数生成器只应在调用rand(),在节目开始的时候。它不应该被重复播种,或者每次你想要生成一批新的伪随机数时都被重新种植。

的标准做法是使用调用的结果time(0)就像种子一样。然而,time()返回time_t价值,和time_t不能保证是一个完整的类型。然而,在实践中,每个主要实现都定义了time_t成为一个完整的类型,这也是POSIX所要求的。

二次

#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'; }

二次

可能的产出:

二次

Random value on [0 2147483647]: 1373858591

二次

另见

randgenerates a pseudo-random number (function)
RAND_MAXmaximum possible value generated by std::rand (macro constant)
reseedreseeds the per-thread random engine (function)

c为瑞典兰德编写的文件

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/数值/随机/srand