Pseudo-random number generation
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
随机数库发电机(伪随机数发生器,它产生具有均匀分布的整数序列,和真正的随机数生成器,如果可用的话),并提供了一组一组的转换的均匀分布的随机数的分布类发电机到各种统计分布.
原文:
The random number library provides a set of generator engines (both pseudo-random number generators, which generate integer sequences with a uniform distribution, and true random number generators if available) and a set of random number distribution classes which convert the uniform distribution of the generator engines into various statistical distributions.
所有的发电机都可以明确种子,序列化,使用可重复模拟器和反序列化.
原文:
All of the generator engines may be specifically seeded, serialized, and deserialized for use with repeatable simulators.
[编辑] 随机数引擎
随机数引擎生成伪随机数种子作为信息源的数据。几种不同类型的伪随机数生成算法被实现为模板,可以定制.
原文:
Random number engines generate pseudo-random numbers using seed data as entropy source. Several different classes of pseudo-random number generation algorithms are implemented as templates that can be customized.
所使用的发动机的选择包括一些权衡:线性同余发动机的适度快速和有一个非常小的存储需求状态。落后的斐波那契发电机的速度非常快,即使是在没有先进的算术运算指令集的处理器,在更大的状态存储和有时不太理想的光谱特性为代价的。梅森捻线机是速度较慢,具有更大的固态存储要求,但正确的参数,最长的非重复序列最可取的光谱特性(对于一个给定的定义可取).
原文:
The choice of which engine to use involves a number of tradeoffs: the linear congruential engine is moderately fast and has a very small storage requirement for state. The lagged Fibonacci generators are very fast even on processors without advanced arithmetic instruction sets, at the expense of greater state storage and sometimes less desirable spectral characteristics. The Mersenne twister is slower and has greater state storage requirements but with the right parameters has the longest non-repeating sequence with the most desirable spectral characteristics (for a given definition of desirable).
在头文件
<random> 中定义 | |
(C++11) |
实现线性同余算法 (类模板) |
(C++11) |
实现梅森捻线机算法 (类模板) |
(C++11) |
(类模板) |
[编辑] 随机数引擎适配器
随机数引擎适配器生成的伪随机数,使用另一个随机数发动机作为熵源。它们通常用于改变的光谱特性的底层引擎.
原文:
Random number engine adaptors generate pseudo-random numbers using another random number engine as entropy source. They are generally used to alter the spectral characteristics of the underlying engine.
在头文件
<random> 中定义 | |
(C++11) |
丢弃一些输出的随机数引擎 原文: discards some output of a random number engine (类模板) |
(C++11) |
包装成块的指定数位输出的一个随机数引擎 原文: packs the output of a random number engine into blocks of specified number of bits (类模板) |
(C++11) |
以不同的顺序提供一个随机数的输出的发动机 原文: delivers the output of a random number engine in different order (类模板) |
[编辑] 预定义的随机数生成器
一些特定的流行的算法是预定义的.
原文:
Several specific popular algorithms are predefined.
在头文件
<random> 中定义 | |
类型
|
Definition |
minstd_rand0
|
std::linear_congruential_engine<uint_fast32_t, 16807, 0, 2147483647> |
minstd_rand
|
std::linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647> |
mt19937
|
std::mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31, 0x9908b0df, 11, |
mt19937_64
|
std::mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9, 29, |
ranlux24_base
|
std::subtract_with_carry_engine<uint_fast32_t, 24, 10, 24> |
ranlux48_base
|
std::subtract_with_carry_engine<uint_fast64_t, 48, 5, 12> |
ranlux24
|
std::discard_block_engine<ranlux24_base, 223, 23> |
ranlux48
|
std::discard_block_engine<ranlux48_base, 389, 11> |
knuth_b
|
std::shuffle_order_engine<minstd_rand0, 256> |
default_random_engine
|
“实现自定义”
|
非确定性的随机数生成器的使用硬件信息源 原文: non-deterministic random number generator using hardware entropy source (类) |
[编辑] 随机分布
随机数分布的后处理的随机数的输出的发动机或在这样一种方式,得到的输出被分配在一个定义的统计概率密度函数的适配器.
原文:
Random number distributions are post-process the output of an random number engine or adaptors in such a way that resulting output is distributed on a defined statistical probability density function.
在头文件
<random> 中定义 | |
| |
(C++11) |
产生的范围内均匀地分布在整数值 原文: produces integer values evenly distributed across a range (类模板) |
(C++11) |
产生的范围内均匀地分布在整个的真实值 原文: produces real values evenly distributed across a range (类模板) |
(C++11) |
均匀分布实际值的给定的精度,跨[0,1) 原文: evenly distributes real values of given precision across [0, 1) (函数模板) |
| |
(C++11) |
(类) |
(C++11) |
在二项分布整数值. (类模板) |
(类模板) | |
(C++11) |
在几何分布整数值. (类模板) |
| |
(C++11) |
在泊松分布整数值. (类模板) |
(C++11) |
上指数分布产生真正的价值. (类模板) |
(C++11) |
上伽玛分布产生真正的价值. (类模板) |
(C++11) |
(类模板) |
(C++11) |
上极端值的分布产生真正的价值. (类模板) |
| |
(C++11) |
在标准正态(高斯)分布产生真正的价值. 原文: produces real values on a 标准正态(高斯)分布. (类模板) |
(C++11) |
在对数正态分布产生真正的价值. (类模板) |
(C++11) |
在卡方分布产生真正的价值. (类模板) |
(C++11) |
在柯西分布产生真正的价值. (类模板) |
(C++11) |
(类模板) |
(C++11) |
在学生的t分布产生真正的价值. (类模板) |
| |
(C++11) |
产生的离散分布的随机整数. 原文: produces random integers on a discrete distribution. (类模板) |
实际值分布在恒定的子区间. 原文: produces real values distributed on constant subintervals. (类模板) | |
定义的子区间分布的实际值. 原文: produces real values distributed on defined subintervals. (类模板) |
[编辑] 预定义的种子序列发生器
在头文件
<random> 中定义 | |
(C++11) |
通用偏置消除扰频种子序列发生器 原文: general-purpose bias-eliminating scrambled seed sequence generator (类) |
[编辑] C库
在头文件
<cstdlib> 中定义 | |
产生一个伪随机数 (函数) | |
初始化的伪随机数发生器 原文: initializes pseudo-random number generator (函数) | |
std::rand所产生的最大可能值 原文: maximum possible value generated by std::rand (常量宏) |