Xi Xu's More Things

std::uniform_random_bit_generator

来自cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
伪随机数生成
均匀随机位生成器
uniform_random_bit_generator
(C++20)
引擎及引擎适配器
非确定性生成器
(C++11)
分布
均匀分布
伯努利分布
泊松分布
正态分布
采样分布
种子序列
(C++11)
C 库
 
在标头 <random> 定义
template <class G>

concept uniform_random_bit_generator =
  std::invocable<G&> && std::unsigned_integral<std::invoke_result_t<G&>> &&
  requires {
    { G::min() } -> std::same_as<std::invoke_result_t<G&>>;
    { G::max() } -> std::same_as<std::invoke_result_t<G&>>;
    requires std::bool_constant<(G::min() < G::max())>::value;

  };
(C++20 起)

概念 uniform_random_bit_generator<G> 指定 G 为均匀随机位生成器的类型,即 G 类型对象是函数对象,返回无符号整数值,并使得可能结果范围中的每个值(理论上)拥有相等的被返回概率。

语义要求

uniform_random_bit_generator<G> 仅若符合下列条件才得到实现。给定 G 类型对象 g

  • g() 在范围 [G::min(), G::max()]
  • g() 拥有均摊常数复杂度

注解

requires std::bool_constant<(G::min() < G::max())>::value; 要求仅若 G::min()G::max() 均为常量表达式,且比较结果为 true 才得到满足。