C++ 具名要求:均匀随机位生成器 (UniformRandomBitGenerator)

来自cppreference.com
< cpp‎ | named req
 
 
C++ 具名要求
基础
类型属性
库所属
容器
容器元素
(C++11)

迭代器
流 I/O
格式化
(C++20)
随机数
(C++11)    
UniformRandomBitGenerator
(C++11)    
并发
(C++11)
(C++11)
范围
其他
(C++11)


 

均匀随机位生成器是返回无符号整数值的函数对象,可能结果范围中的每个值都(理想情况)拥有等概率。

均匀随机位生成器不是有意用做随机数生成器的:它们被用作随机位的源(为效率大量生成)。任何均匀随机位生成器均可被插入任何随机数分布,以获得随机数(正式而言是随机变量)。

要求

类型 G 满足均匀随机位生成器 (UniformRandomBitGenerator) ,若

给定

  • TG::result_type 所指名的类型
  • gG 类型的值

下列表达式必须合法且拥有其指定的效应

表达式 返回类型 要求
G::result_type T T 是无符号整数类型
G::min() T 返回 G 的 operator() 可返回的最小值。值严格小于 G::max() 。函数必须是 constexpr 。
G::max() T 返回 G 的 operator() 可返回的最大值。值严格大于 G::min() 。函数必须是 constexpr 。
g() T 返回闭区间 [G::min(), G::max()] 中的值。拥有均摊常数复杂度。

注解

所有随机数引擎 (RandomNumberEngine) 均满足此要求。

标准库

下列标准库设施期待均匀随机位生成器 (UniformRandomBitGenerator) 类型。

(C++17 前)(C++11)
随机重排范围中的元素
(函数模板)
给定精度的均匀分布在 [0, 1) 上的实数值
(函数模板)
产生在一个范围上均匀分布的整数值
(类模板)
产生在一个范围上均匀分布的实数值
(类模板)
所有其他随机数分布

下列标准库设施满足均匀随机位生成器 (UniformRandomBitGenerator) 而不另外满足随机数引擎 (RandomNumberEngine)

使用硬件熵源的非确定随机数生成器
(类)

参阅

指定类型具备作为均匀随机位生成器的资格
(概念)