C++ random 头
-
定义
random 引入随机数生成功能。该库允许使用生成器和分布的组合来产生随机数:- 生成器:生成均匀分布的数字的对象。
- 分布:将生成器生成的数字序列转换为遵循特定随机变量分布(例如均匀,正态或二项式)的数字序列的对象。
分发对象通过其operator()成员生成随机数,该成员将生成器对象作为参数:std::default_random_engine generator; std::uniform_int_distribution<int< distribution(1,6); int dice_roll = distribution(generator); // generates number in the range 1..6
为了重复使用,可以将两者绑定在一起:auto dice = std::bind ( distribution, generator ); int wisdom = dice()+dice()+dice();
除了random_device之外,库中定义的所有标准生成器都是随机数引擎,它们是一种使用特定算法生成一系列伪随机数的生成器。 这些算法需要种子作为随机性的来源,并且该种子可以是单个值,也可以是具有非常特定的generate()成员函数/类/模板的对象(有关更多信息,请参见seed_seq)。 琐碎任务的典型随机性来源是时间,例如time或system_clock::now提供的信息(有关典型示例,请参见Uniform_int_distribution::operator())。另外,也可以使用cstdlib的rand和srand函数/类/模板生成不重要的随机数。 -
Generators(生成者)
伪随机数引擎(模板)生成器使用一种算法来基于初始种子生成伪随机数:函数/类/模板 描述 linear_congruential_engine 线性同余随机数引擎(类模板) mersenne_twister_engine Mersenne Twister随机数引擎(类模板) subtract_with_carry_engine 随身携带随机数引擎(类模板) 引擎适配器他们调整引擎,修改引擎生成数字的方式:函数/类/模板 描述 discard_block_engine 丢弃块随机数引擎适配器(类模板) independent_bits_engine 独立位随机数引擎适配器(类模板) shuffle_order_engine 随机顺序随机数引擎适配器(类模板) 伪随机数引擎(实例)生成器引擎和适配器的特殊实例化:函数/类/模板 描述 default_random_engine 默认随机引擎(类) minstd_rand 最低标准minstd_rand生成器(类) minstd_rand0 最低标准minstd_rand0生成器(类) mt19937 Mersenne Twister 19937生成器(类) mt19937_64 Mersene Twister 19937生成器(64位)(类) ranlux24_base Ranlux 24基础生成器(类) ranlux48_base Ranlux 48基础生成器(类) ranlux24 Ranlux 24生成器(类) ranlux48 Ranlux 48生成器(类) knuth_b Knuth-B生成器(类) 随机数生成器非确定性随机数生成器:函数/类/模板 描述 random_device 真随机数生成器(类) -
分布
Uniform函数/类/模板 描述 uniform_int_distribution 均匀离散分布(类模板) uniform_real_distribution 均匀实数分布(类模板) 与伯努利试验(是/否)有关:函数/类/模板 描述 bernoulli_distribution 伯努利分布(类) binomial_distribution 二项式分布(类模板) geometric_distribution 几何分布(类模板) negative_binomial_distribution 负二项分布(类模板) 基于率的分布:函数/类/模板 描述 poisson_distribution 泊松分布(类模板) exponential_distribution 指数分布(类模板) gamma_distribution 伽玛分布(类模板) weibull_distribution 威布尔分布(类模板) extreme_value_distribution 极值分配(类模板) 与正态分布有关:函数/类/模板 描述 normal_distribution 正态分布(类模板) lognormal_distribution 对数正态分布(类模板) chi_squared_distribution 卡方分布(类模板) cauchy_distribution 柯西分布(类模板) fisher_f_distribution Fisher F分布(类模板) student_t_distribution 学生T分布(类模板) 分段分布:函数/类/模板 描述 discrete_distribution 离散分布(类模板) piecewise_constant_distribution 分段常数分布(类模板) piecewise_linear_distribution 分段线性分布(类模板) -
其他
函数/类/模板 描述 seed_seq 种子序列(类) generate_canonical 生成规范数字(函数模板)