📅  最后修改于: 2023-12-03 15:35:09.433000             🧑  作者: Mango
std::random_device
是C++的标准库函数,用于生成一个随机数种子。
首先要包含随机数库的头文件:
#include <random>
然后使用std::random_device()
来生成一个随机数种子:
std::random_device rd;
对于一些使用伪随机数算法的生成器,比如std::mt19937
,我们需要把这个种子传入:
std::mt19937 gen(rd());
这样就可以使用生成器生成随机数了。
std::random_device
并不是一个真正的随机数生成器,它往往使用系统噪声等一些熵源来生成种子。因此,如果系统没有可以用于熵源的设备,std::random_device()
生成的随机数可能是预测的或可重复的,这可能是安全漏洞的来源。
此外,不同的操作系统对熵源的处理也可能有差异,因此必须谨慎使用。
下面是一个简单的例子,使用std::random_device
和std::uniform_int_distribution
生成随机数:
#include <iostream>
#include <random>
int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
for (int i = 0; i < 10; ++i) {
std::cout << dis(gen) << ' ';
}
std::cout << '\n';
}
输出会随机生成类似于2 1 6 1 6 2 6 3 6 3
的数字序列。