c++如何取范围内随机数
时间: 2024-09-01 19:00:27 浏览: 26
在C++中,取范围内随机数通常可以通过`<random>`库中的随机数生成器(例如`std::mt19937`)和分布(例如`std::uniform_int_distribution`或`std::uniform_real_distribution`)来实现。下面是一个示例代码,演示如何生成一个给定范围内的随机整数:
```cpp
#include <random>
#include <iostream>
int main() {
// 定义随机数生成器,这里使用mt19937作为引擎
std::random_device rd; // 随机数设备,用于提供种子
std::mt19937 gen(rd()); // 以随机设备作为种子初始化Mersenne Twister生成器
// 定义分布,这里假设我们想要取[10, 20]范围内的随机数
std::uniform_int_distribution<> distrib(10, 20);
// 生成并输出随机数
int random_number = distrib(gen);
std::cout << "随机数: " << random_number << std::endl;
return 0;
}
```
在这个例子中,`std::random_device`用作种子的提供者,它可以从系统提供的随机源获得一个非确定的种子。`std::mt19937`是基于Mersenne Twister算法的一个高质量随机数生成器。`std::uniform_int_distribution<>`是一个均匀分布,用于生成指定范围内的随机整数。
如果你想要生成随机浮点数,可以使用`std::uniform_real_distribution<>`,然后指定浮点数范围,例如:
```cpp
std::uniform_real_distribution<double> real_distrib(0.0, 1.0); // 生成[0.0, 1.0)之间的随机浮点数
double random_real = real_distrib(gen); // 生成随机浮点数
```