std::rand
STD:兰德
Defined in header | | |
---|---|---|
int rand( | | |
之间的伪随机积分值。0
和RAND_MAX
280%和RAND_MAX
包括%29
std::srand()
使用的伪随机数生成器种子。rand()
.如果rand()
在调用srand()
,,,rand()
表现得好像它是被播种的srand(1)
...
每次rand()
种下srand()
,它必须在连续调用时产生相同的值序列。标准库中的其他函数可以调用rand
,是实现-定义了哪些函数这样做。
它是由实现定义的rand()
线程安全。
参数
%280%29
返回值
伪随机积分值0
和RAND_MAX
...
注记
所产生的随机序列的质量没有保证。在过去,一些实现rand()
在序列的随机性、分布性和周期性等方面都存在严重的缺点,在一个众所周知的例子中产生了%28,低阶位简单地交替。1
和0
在呼叫%29之间。
rand()
不推荐用于严重的随机数生成需求,例如加密。建议使用C++11%27 s。随机数生成替换兰特%28%29的设施。%28自C++11%29。
例
二次
#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
二次
另见
uniform_int_distribution (C++11) | produces integer values evenly distributed across a range (class template) |
---|---|
srand | seeds pseudo-random number generator (function) |
RAND_MAX | maximum possible value generated by std::rand (macro constant) |
randint | generates a random integer in the specified range (function template) |
c兰德文件
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。