随机数生成引擎:定义了生成随机位序列的无符号整数序列机制的类模板。
随机数生成器:随机数引擎类模板的一个预定义的实例。
随机数引擎适配器:类模板,通过修改另一个随机数引擎生成的序列来生成随机数序列。
分布:随机序列中的数出现在序列中的概率。STL定义了位各种不同的分布定义函数对象的类模板。
随机数种子:随机数的生成算法总是从单个或多个种子开始的,他们代表着产生随机数的计算的初始输入。
获取随机数种子:std::random_device rd;
random_device类定义的变量可以生成用来作为种子的随机的无符号整数值,也即可以用来出初始化随机数生成引擎。
随机数生成器:
| Engine | 说明 |
| default_random_engine | |
| shuffle_order_engine | |
| linear_congruential_engine | 基于线性同余的生成器 |
| mersenne_twister_engine | |
| subtract_with_carry_engine | 带进位减法引擎 |
| discard_block_engine | 带进位加法引擎 |
| independent_bits_engine | |
| mt19937 | 马特塞特旋转演算引擎(-maxint,+maxint) |
分布类模板:
| distribution | 说明 |
| 均匀分布 | ************************** |
| uniform_int_distribution | 产生[m,n]均匀分布的整数 |
| uniform_real_distribution | 产生[m,n]默认[0-1]均匀分布的实数 |
| 伯努利分布 | ************************** |
| bernoulli_distribution b( p ) | |
| binomial_distribution | |
| geometric_distribution | |
| negative_binomial_distribution | |
| 泊松分布 | ************************* |
| poisson_distribution | |
| exponential_distribution | |
| gamma_distribution | |
| weibull_distribution | |
| 正态分布 | ************************* |
| normal_distribution | |
| lognomal_distribution | |
| chi_squared_distribution | |
| cauchy_distribution | |
| fisher_f__distribution |
| student_t__distribution | |
| 抽样分布 | ************************* |
| discrete_distribution | |
| discrete__distribution | |
| piecewise_constant_distribution | |
| piecewise_linear_distribution |
使用示范:
std::mt19937 gen(std::random_device{}());//{mt19937的数值范围是INT_MIN到INT_MAX
std::uniform_int_distribution dis;//分布,写成类模板
int ran=dis(gen);
原文链接:https://blog.csdn.net/zzyczzyc/article/details/93919088



