c++获取毫秒级随机数
时间: 2024-06-26 17:00:16 浏览: 196
在C++中,获取毫秒级的随机数通常可以通过`<random>`库和`<chrono>`库结合来实现。`<chrono>`库提供了时间点的处理,而`<random>`库则提供了生成随机数的功能。以下是一个简单的示例,展示了如何使用这两个库来生成一个基于当前时间的毫秒级随机数:
```cpp
#include <iostream>
#include <random>
#include <chrono>
// 获取当前时间(毫秒)
unsigned long long current_milliseconds() {
return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now().time_since_epoch()).count();
}
// 定义随机数生成器和分布
std::mt19937_64 generator; // 使用Mersenne Twister算法
std::uniform_int_distribution<unsigned long long> distribution(0, std::numeric_limits<unsigned long long>::max());
int main() {
unsigned long long seed = current_milliseconds(); // 用当前时间作为随机数种子
generator.seed(seed);
// 生成一个0到最大时间戳之间的随机数,代表毫秒
auto random_millis = distribution(generator);
std::cout << "Generated random number (milliseconds): " << random_millis << std::endl;
return 0;
}
```
在这个示例中,我们首先获取当前时间的毫秒数,然后将其作为随机数生成器的种子。接着,我们定义了一个范围从0到最大可能值的均匀分布,这会生成一个随机的毫秒数。
阅读全文