跳到主要内容

C++ 随机数

在程序设计中,有许多情况需要生成随机数,C++ 标准库 <cstdlib> 中有两个和生成随机数有关的函数。

函数说明
int rand(void)返回一个伪随机数
void srand(unsigned int seed)用于伪随机数生成算法播种

解释一下什么叫做播种,播种就是类似于我们摇骰子中不断的左右摇晃的次数,摇的次数不一样生成的随机数不一样的概念就更大。

C++ 中一般使用标准库 <ctime> 中的函数 time() 返回的时间戳当作随机数播种时的种子。

示例:生成 100 以内的随机数

#include <iostream>
#include <ctime>
#include <cstdlib>

int main ()
{
int i, j;

// 设置种子
srand((unsigned)time(NULL));

/* 生成 10 个随机数 */
for (i=0; i<10; i++) {
// 生成实际的随机数
j = rand();
std::cout << j << std::endl;
}

return 0;
}

编译和运行以上示例,输出结果如下:

64
76
63
35
47
63
67
76
73
32

多运行几次,就会发现每次生成的都不一样。