在线文档教程
C++
数字 | Numerics

std::random_device

STD:随机[医]装置

Defined in header
class random_device;(since C++11)

std::random_device是一个均匀分布的整数随机数生成器,它产生非确定性随机数。

std::random_device如果不确定源%28例如,则可以根据实现定义的伪随机数引擎来实现。硬件设备%29不能用于实现。在这种情况下,每个std::random_device对象可以生成相同的数字序列。

成员类型

Member typeDefinition
result_typeunsigned int

成员函数

建设

*。

%28构造函数%29构造引擎%28公共成员函数%29

运算符=%28已删除%29赋值运算符被删除%28公共成员函数%29

世代

运算符%28%29提升引擎%27s状态并返回生成值%28公共成员函数%29

特征

熵得到了非确定性随机数发生器%28公共成员函数%29的熵估计。

敏静态获取输出范围%28公共静态成员函数%29中的最小可能值。

马克斯静态获取输出范围%28公共静态成员函数%29中的最大可能值。

二次

#include <iostream> #include <string> #include <map> #include <random> int main() { std::random_device rd; std::map<int, int> hist; std::uniform_int_distribution<int> dist(0, 9 for (int n = 0; n < 20000; ++n) { ++hist[dist(rd)]; // note: demo only: the performance of many // implementations of random_device degrades sharply // once the entropy pool is exhausted. For practical use // random_device is generally only used to seed // a PRNG such as mt19937 } for (auto p : hist) { std::cout << p.first << " : " << std::string(p.second/100, '*') << '\n'; } }

二次

可能的产出:

二次

0 : ******************** 1 : ******************* 2 : ******************** 3 : ******************** 4 : ******************** 5 : ******************* 6 : ******************** 7 : ******************** 8 : ******************* 9 : ********************

二次

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cpPreference.com/w/cpp/数值/随机/随机[医]装置