1. <random>库方法 (C++11以上)

C++11新增了<random>库,用于生成更高质量的随机数

使用方法:

1. 包含头文件 random

#include <random>

2. 创建一个随机数生成器对象

std::random_device genr;  // 使用设备信息生成随机数种子,质量更高
std::mt19937 gen(genr());  // 创建一个基于梅森螺旋算法的随机数生成器,使用设备信息种子

3. 创建一个均匀分布的随机数生成器

// 用于生成整数
std::uniform_int_distribution<int> dist(整数范围); 
// 用于生成整数
std::uniform_real_distribution<float> dist(整数范围);

例如:

// 这段代码会让生成器生成1到10之内的随机整数
std::uniform_int_distribution<int> dist(1, 10);
// 这段代码会让生成器生成0.5到2.5之内的随机浮点数
std::uniform_real_distribution<float> dist(0.5, 2.5);

4. 生成随机数

使用 dist(gen) 生成随机数
打印出生成的随机数:

std::cout << "随机数: " << dist(gen) << std::endl;

2. 使用C风格rand()函数

Note

使用这种方式生成的随机数质量较低,且会有分布不均匀,线程不安全等问题,所以建议不要再使用这个方法

具体方法见 C语言的随机数生成

By MeltIce.