std::rand

来自cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
定义于头文件 <cstdlib>
int rand();

返回 0RAND_MAX (包含 0 与 RAND_MAX )的随机数。

std::srand() 播种 rand() 所用的伪随机数生成器。若在任何到 srand() 的调用前使用 rand() ,则 rand() 表现如同它以 srand(1) 播种。

每次以 srand() 播种 rand() ,它必须在后续调用上产生相同的值数列。标准库中的其他函数可调用 rand ,哪个函数这么做是实现定义的。

rand() 是否线程安全是实现定义的。

目录

[编辑] 参数

(无)

[编辑] 返回值

0RAND_MAX 间的随机整数值。

[编辑] 注意

不保证生成的随机数列质量。过去,一些 rand() 在随机性、分布和产生的序列周期上有严重缺陷(在一个众所周知的例子中,调用之间最低位简单地在 10 间切换)。

对于严肃的随机数生成需求,如加密,不推荐 rand()推荐用 C++11 的随机数生成设施替换 rand() 。 (C++11 起)

[编辑] 示例

#include <cstdlib>
#include <iostream>
#include <ctime>
 
int main() 
{
    std::srand(std::time(0)); // 以当前时间为随机生成器的种子
    int random_variable = std::rand();
    std::cout << "Random value on [0 " << RAND_MAX << "]: " 
              << random_variable << '\n';
}

可能的输出:

Random value on [0 2147483647]: 1373858591

[编辑] 参阅

产生均匀分布在范围上的整数值
(类模板) [编辑]
初始化伪随机数生成器
(函数) [编辑]
std::rand 生成的最大可能值
(宏常量) [编辑]
生成指定范围中的随机整数
(函数模板) [编辑]
randC 文档