C++ 真随机值发生器
示例
为了生成可以用于加密的真实随机值,std::random_device必须将其用作生成器。
#include <iostream>
#include <random>
int main()
{
std::random_device crypto_random_generator;
std::uniform_int_distribution<int> int_distribution(0,9);
int actual_distribution[10] = {0,0,0,0,0,0,0,0,0,0};
for(int i = 0; i < 10000; i++) {
int result = int_distribution(crypto_random_generator);
actual_distribution[result]++;
}
for(int i = 0; i < 10; i++) {
std::cout << actual_distribution[i] << " ";
}
return 0;
}std::random_device与使用伪随机值生成器的方式相同。
但是,如果不确定性源(例如,硬件设备)不可用于std::random_device实现,则可以根据实现定义的伪随机数引擎来实现。
应该通过entropy成员函数(当生成器完全确定时返回零)来检测这种实现,但是许多流行的库(GCC的libstdc++和LLVM的libc++)总是返回零,即使它们使用的是高质量的外部随机性。
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短