跳到主要内容

C++ 命名要求: UniformRandomBitGenerator (自 C++11 起)

均匀随机位生成器是一个函数对象,它返回无符号整数值,使得每个可能结果范围内的值具有(理想上)相等的概率。

均匀随机位生成器不打算用作随机数生成器:它们用作随机位的来源(为提高效率而批量生成)。任何均匀随机位生成器都可以插入到任何随机数分布中,以获得随机数(正式地,随机变量)。

要求

如果给定以下条件,类型 G 满足 UniformRandomBitGenerator

  • TG::result_type 命名的类型
  • g,类型为 G 的值。以下表达式必须有效并具有其指定效果
表达式返回类型要求
G::result_typeTT 是一个无符号整数类型
G::min()T返回 Goperator() 可能返回的最小值。该值严格小于 G::max()。该函数必须是 constexpr
G::max()T返回 Goperator() 可能返回的最大值。该值严格大于 G::min()。该函数必须是 constexpr
g()T返回闭区间 [G::min(), G::max()] 中的值。具有分摊常数复杂度。

备注

所有 RandomNumberEngines 都满足此要求。

标准库

以下标准库设施需要 UniformRandomBitGenerator 类型。

pubrandom_shuffle (直到 C++17)
shuffle(C++11)
随机重新排列范围中的元素
pubgenerate_canonical(C++11)将给定精度的实值均匀分布在 [0, 1) 范围内
pubuniform_int_distribution(C++11)生成在指定范围内均匀分布的整数值
pubuniform_real_distribution(C++11)生成在指定范围内均匀分布的实数值
pub所有其他随机数分布

以下标准库设施满足 UniformRandomBitGenerator 而不额外满足 RandomNumberEngine

pubrandom_device(C++11)使用硬件熵源的非确定性随机数生成器

C++ 命名要求: UniformRandomBitGenerator (自 C++11 起)

均匀随机位生成器是一个函数对象,它返回无符号整数值,使得每个可能结果范围内的值具有(理想上)相等的概率。

均匀随机位生成器不打算用作随机数生成器:它们用作随机位的来源(为提高效率而批量生成)。任何均匀随机位生成器都可以插入到任何随机数分布中,以获得随机数(正式地,随机变量)。

要求

如果给定以下条件,类型 G 满足 UniformRandomBitGenerator

  • TG::result_type 命名的类型
  • g,类型为 G 的值。以下表达式必须有效并具有其指定效果
表达式返回类型要求
G::result_typeTT 是一个无符号整数类型
G::min()T返回 Goperator() 可能返回的最小值。该值严格小于 G::max()。该函数必须是 constexpr
G::max()T返回 Goperator() 可能返回的最大值。该值严格大于 G::min()。该函数必须是 constexpr
g()T返回闭区间 [G::min(), G::max()] 中的值。具有分摊常数复杂度。

备注

所有 RandomNumberEngines 都满足此要求。

标准库

以下标准库设施需要 UniformRandomBitGenerator 类型。

pubrandom_shuffle (直到 C++17)
shuffle(C++11)
随机重新排列范围中的元素
pubgenerate_canonical(C++11)将给定精度的实值均匀分布在 [0, 1) 范围内
pubuniform_int_distribution(C++11)生成在指定范围内均匀分布的整数值
pubuniform_real_distribution(C++11)生成在指定范围内均匀分布的实数值
pub所有其他随机数分布

以下标准库设施满足 UniformRandomBitGenerator 而不额外满足 RandomNumberEngine

pubrandom_device(C++11)使用硬件熵源的非确定性随机数生成器