|
| template<std::same_as< std::uint32_t > Uint32> |
| constexpr float | FloatFromBits (Uint32 i) noexcept |
| template<std::same_as< std::uint64_t > Uint64> |
| constexpr double | DoubleFromBits (Uint64 i) noexcept |
| template<class CharT, class Traits, detail::SerializableEngine Engine> |
| std::basic_ostream< CharT, Traits > & | operator<< (std::basic_ostream< CharT, Traits > &os, const Engine &engine) |
| template<class CharT, class Traits, detail::SerializableEngine Engine> |
| std::basic_istream< CharT, Traits > & | operator>> (std::basic_istream< CharT, Traits > &is, Engine &engine) |
| std::uint64_t | RandomSeed () |
| | 生成非确定性的 64 位种子
|
| Xoshiro256StarStar & | DefaultEngine () |
| void | SecureRandomBytes (void *buf, std::size_t n) |
| | 用 OS 密码学熵源填充 [buf, buf+n) 字节
|
| std::uint64_t | SecureSeed () |
| | 生成密码学安全的 64 位随机种子
|
| bool | IsOsCryptoEntropyAvailable () noexcept |
| | 检测 OS 密码学熵源是否可用
|
| void | Reseed (std::uint64_t seed) |
| | 重置默认引擎的种子(用于测试复现)
|
| void | ReseedRandom () |
| | 重置默认引擎为真随机种子
|
| template<std::integral T = int> |
| T | RandInt (T min, T max) |
| | 生成 [min, max] 范围内的随机整数
|
| template<std::integral T = int> |
| T | RandInt (T max) |
| | 生成 [0, max] 范围内的随机整数
|
| template<std::floating_point T = double> |
| T | RandReal (T min=T{0}, T max=T{1}) |
| | 生成 [min, max) 范围内的随机浮点数
|
| bool | RandBool (double p=0.5) |
| | 生成随机布尔值
|
| template<class Engine> |
| bool | RandBool (Engine &engine, double p=0.5) |
| | 生成随机布尔值(指定引擎重载)
|
| bool | RandBernoulli (double p=0.5) |
| | 伯努利分布(RandBool 的别名封装,对齐 <random> 命名)
|
| template<class Engine> |
| bool | RandBernoulli (Engine &engine, double p=0.5) |
| | 伯努利分布(指定引擎重载)
|
| template<detail::Character CharT> |
| CharT | RandChar (CharT min, CharT max) |
| | 生成 [min, max] 范围内的随机字符
|
| template<detail::Character CharT = char> |
| CharT | RandChar (CharT max) |
| | 生成 [CharT{}, max] 范围内的随机字符
|
| template<detail::Character CharT, class Engine> |
| CharT | RandChar (Engine &engine, CharT min, CharT max) |
| | 生成 [min, max] 范围内的随机字符(指定引擎重载)
|
| template<detail::Character CharT = char, class Engine> |
| CharT | RandChar (Engine &engine, CharT max) |
| | 生成 [CharT{}, max] 范围内的随机字符(指定引擎重载)
|
template<class Container>
requires std::ranges::random_access_range<Container> |
| decltype(auto) | RandElement (Container &c) |
| | 从容器中随机取一个元素(左值容器,返回引用)
|
template<class Container>
requires std::ranges::random_access_range<Container> |
| std::ranges::range_value_t< Container > | RandElement (Container &&c) |
| | 从容器中随机取一个元素(右值容器,按值返回以避免悬垂引用)
|
| template<std::random_access_iterator It> |
| It | RandElement (It first, It last) |
| | 从迭代器范围内随机取一个元素(随机访问迭代器:O(1) 直接定位)
|
template<std::input_iterator It>
requires (!std::random_access_iterator<It>) |
| It | RandElement (It first, It last) |
| | 从迭代器范围内随机取一个元素(输入迭代器:O(n) reservoir sampling)
|
| template<std::random_access_iterator It, class Engine> |
| It | RandElement (Engine &engine, It first, It last) |
| | 从迭代器范围内随机取一个元素(指定引擎,随机访问迭代器)
|
template<std::input_iterator It, class Engine>
requires (!std::random_access_iterator<It>) |
| It | RandElement (Engine &engine, It first, It last) |
| | 从迭代器范围内随机取一个元素(指定引擎,输入迭代器)
|
| template<std::floating_point T = double> |
| T | RandNormal (T mean=T{0}, T stddev=T{1}) |
| | 生成正态分布随机数
|
| template<class Engine, std::floating_point T = double> |
| T | RandNormal (Engine &engine, T mean=T{0}, T stddev=T{1}) |
| | 生成正态分布随机数(指定引擎重载)
|
| template<std::ranges::random_access_range Container> |
| void | RandShuffle (Container &&c) |
| | 随机打乱容器
|
template<class It, class T>
requires detail::RandFillable<It, T> && std::integral<T> |
| void | RandFill (It first, It last, T min, T max) |
| | 用 [min, max] 范围的随机整数填充迭代器区间
|
template<class It, std::floating_point T>
requires std::output_iterator<It, T> |
| void | RandFill (It first, It last, T min, T max) |
| | 用 [min, max) 范围的随机浮点数填充迭代器区间
|
template<class It, class T, class Engine>
requires detail::RandFillable<It, T> && std::integral<T> |
| void | RandFill (Engine &engine, It first, It last, T min, T max) |
| | 用 [min, max] 范围的随机整数填充迭代器区间(指定引擎重载)
|
template<class It, std::floating_point T, class Engine>
requires std::output_iterator<It, T> |
| void | RandFill (Engine &engine, It first, It last, T min, T max) |
| | 用 [min, max) 范围的随机浮点数填充迭代器区间(指定引擎重载)
|
| template<std::integral T = int> |
| std::vector< T > | RandVector (T min, T max, std::size_t n) |
| | 生成含 n 个随机整数的 vector
|
| template<std::floating_point T = double> |
| std::vector< T > | RandVector (T min, T max, std::size_t n) |
| | 生成含 n 个随机浮点数的 vector
|
| template<std::integral T = int, class Engine> |
| std::vector< T > | RandVector (Engine &engine, T min, T max, std::size_t n) |
| | 生成含 n 个随机整数的 vector(指定引擎重载)
|
| template<std::floating_point T = double, class Engine> |
| std::vector< T > | RandVector (Engine &engine, T min, T max, std::size_t n) |
| | 生成含 n 个随机浮点数的 vector(指定引擎重载)
|
| template<class WeightContainer> |
| WeightContainer::size_type | RandWeighted (const WeightContainer &weights) |
| | 按权重随机选取索引
|
| template<class Engine, class WeightContainer> |
| WeightContainer::size_type | RandWeighted (Engine &engine, const WeightContainer &weights) |
| | 按权重随机选取索引(指定引擎重载)
|
| template<class IntType> |
| IntType | RandWeighted (std::discrete_distribution< IntType > &dist) |
| | 按预构建权重分布随机选取索引(支持高频抽取复用,O(1) 复杂度)
|
| template<class Engine, class IntType> |
| IntType | RandWeighted (Engine &engine, std::discrete_distribution< IntType > &dist) |
| | 按预构建权重分布随机选取索引(指定引擎,支持高频抽取复用,O(1) 复杂度)
|
| template<std::integral T, class Engine> |
| T | RandInt (Engine &engine, T min, T max) |
| | 生成 [min, max] 范围内的随机整数(指定引擎重载)
|
| template<std::floating_point T, class Engine> |
| T | RandReal (Engine &engine, T min=T{0}, T max=T{1}) |
| | 生成 [min, max) 范围内的随机浮点数(指定引擎重载)
|
| char | RandChar (CharSet cs) |
| | 从预设字符集随机取一个字符
|
| template<class Engine> |
| char | RandChar (Engine &engine, CharSet cs) |
| | 从预设字符集随机取一个字符(指定引擎重载)
|
| template<std::ranges::random_access_range Container> |
| auto | RandSample (const Container &c, typename Container::size_type n) |
| | 无放回抽样:从容器中随机抽取 n 个元素(Fisher-Yates 前 n 步)
|
| template<std::random_access_iterator It> |
| std::vector< std::iter_value_t< It > > | RandSample (It first, It last, std::iter_difference_t< It > n) |
| | 无放回抽样(随机访问迭代器版,hash-set / 索引数组双分支)
|
template<std::input_iterator It>
requires (!std::random_access_iterator<It>) |
| std::vector< std::iter_value_t< It > > | RandSample (It first, It last, std::iter_difference_t< It > n) |
| | 无放回抽样(输入迭代器版,reservoir sampling Algorithm R)
|
| template<std::random_access_iterator It, class Engine> |
| std::vector< std::iter_value_t< It > > | RandSample (Engine &engine, It first, It last, std::iter_difference_t< It > n) |
| | 无放回抽样(指定引擎,随机访问迭代器版)
|
template<std::input_iterator It, class Engine>
requires (!std::random_access_iterator<It>) |
| std::vector< std::iter_value_t< It > > | RandSample (Engine &engine, It first, It last, std::iter_difference_t< It > n) |
| | 无放回抽样(指定引擎,输入迭代器版,reservoir sampling)
|
| std::vector< std::size_t > | RandPermutation (std::size_t n) |
| | 生成 [0, n) 的随机排列
|
| std::string | RandString (std::size_t length, std::string_view charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") |
| | 生成指定长度的随机字符串
|
| std::string | RandString (std::size_t n, CharSet cs) |
| | 从预设字符集生成随机字符串
|
| template<class Engine> |
| std::string | RandString (Engine &engine, std::size_t n, CharSet cs) |
| | 从预设字符集生成随机字符串(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandExp (T lambda=T{1}) |
| | 生成指数分布随机数
|
| template<class Engine, std::floating_point T = double> |
| T | RandExp (Engine &engine, T lambda=T{1}) |
| | 生成指数分布随机数(指定引擎重载)
|
| template<std::integral T = int> |
| T | RandPoisson (double mean=1.0) |
| | 生成泊松分布随机数
|
| template<class Engine, std::integral T = int> |
| T | RandPoisson (Engine &engine, double mean=1.0) |
| | 生成泊松分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandGamma (T alpha=T{1}, T beta=T{1}) |
| | 生成伽马分布随机数
|
| template<class Engine, std::floating_point T = double> |
| T | RandGamma (Engine &engine, T alpha=T{1}, T beta=T{1}) |
| | 生成伽马分布随机数(指定引擎重载)
|
| template<std::integral T = int> |
| T | RandBinomial (T t=1, double p=0.5) |
| | 生成二项分布随机数
|
| template<std::integral T = int, class Engine> |
| T | RandBinomial (Engine &engine, T t=1, double p=0.5) |
| | 生成二项分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandLogNormal (T mean=T{0}, T stddev=T{1}) |
| | 生成对数正态分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandLogNormal (Engine &engine, T mean=T{0}, T stddev=T{1}) |
| | 生成对数正态分布随机数(指定引擎重载)
|
| template<std::integral T = int> |
| T | RandGeometric (double p=0.5) |
| | 生成几何分布随机数(首次成功前的失败次数)
|
| template<std::integral T = int, class Engine> |
| T | RandGeometric (Engine &engine, double p=0.5) |
| | 生成几何分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandCauchy (T a=T{0}, T b=T{1}) |
| | 生成柯西分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandCauchy (Engine &engine, T a=T{0}, T b=T{1}) |
| | 生成柯西分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandWeibull (T a=T{1}, T b=T{1}) |
| | 生成韦布尔分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandWeibull (Engine &engine, T a=T{1}, T b=T{1}) |
| | 生成韦布尔分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandExtremeValue (T a=T{0}, T b=T{1}) |
| | 生成极值分布(Gumbel)随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandExtremeValue (Engine &engine, T a=T{0}, T b=T{1}) |
| | 生成极值分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandChiSquared (T n=T{1}) |
| | 生成卡方分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandChiSquared (Engine &engine, T n=T{1}) |
| | 生成卡方分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandStudentT (T n=T{1}) |
| | 生成学生 t 分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandStudentT (Engine &engine, T n=T{1}) |
| | 生成学生 t 分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandFisherF (T m=T{1}, T n=T{1}) |
| | 生成 Fisher F 分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandFisherF (Engine &engine, T m=T{1}, T n=T{1}) |
| | 生成 Fisher F 分布随机数(指定引擎重载)
|
| template<std::floating_point T = double> |
| T | RandBeta (T a=T{1}, T b=T{1}) |
| | 生成 Beta 分布随机数
|
| template<std::floating_point T = double, class Engine> |
| T | RandBeta (Engine &engine, T a=T{1}, T b=T{1}) |
| | 生成 Beta 分布随机数(指定引擎重载)
|
template<int N, std::integral T = std::uint64_t>
requires (N > 0 && N <= 64 && N <= std::numeric_limits<T>::digits) |
| T | RandBits () noexcept |
| | 生成 N 位随机整数
|
| template<class Engine> |
| std::string | RandUUID (Engine &engine) |
| | 生成随机 UUID v4 字符串
|
| std::string | RandUUID () |
template<class Engine>
requires detail::StreamEngine<Engine> |
| constexpr Engine | MakeStreamEngine (std::uint64_t streamId, std::uint64_t seed=DefaultSeed) |
| | 从同一种子创建第 streamId 个不重叠子序列的引擎
|
| template<std::integral T = int, std::uint64_t Seed = DefaultSeed> |
| constexpr T | RandIntCE (T min, T max) |
| | 编译期生成 [min, max] 范围内的随机整数
|
| template<std::integral T = int, std::uint64_t Seed = DefaultSeed> |
| constexpr T | RandIntCE (T max) |
| | 编译期生成 [0, max] 范围内的随机整数
|
| template<std::random_access_iterator It, std::uint64_t Seed = DefaultSeed> |
| constexpr void | ShuffleCE (It first, It last) noexcept |
| | 编译期 Fisher-Yates 洗牌
|
| template<class T, std::size_t N, std::uint64_t Seed = DefaultSeed> |
| constexpr std::array< T, N > | ShuffledArray (std::array< T, N > arr) noexcept |
| | 编译期洗牌数组版本(返回打乱后的副本)
|
| template<class Uint32, std::enable_if_t< std::is_same_v< Uint32, std::uint32_t > > * = nullptr> |
| constexpr float | FloatFromBits (Uint32 i) noexcept |
| template<class Uint64, std::enable_if_t< std::is_same_v< Uint64, std::uint64_t > > * = nullptr> |
| constexpr double | DoubleFromBits (Uint64 i) noexcept |
| template<class Engine, std::enable_if_t< detail::HasJump< Engine >::value > * = nullptr> |
| constexpr Engine | MakeStreamEngine (std::uint64_t streamId, std::uint64_t seed=DefaultSeed) |
| template<class T = int, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandInt (T min, T max) |
| | 生成 [min, max] 范围内的随机整数
|
| template<class T = int, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandInt (T max) |
| | 生成 [0, max] 范围内的随机整数
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandReal (T min=T{0}, T max=T{1}) |
| | 生成 [min, max) 范围内的随机浮点数
|
| template<class CharT, std::enable_if_t< detail::is_character_v< CharT > > * = nullptr> |
| CharT | RandChar (CharT min, CharT max) |
| | 生成 [min, max] 范围内的随机字符
|
| template<class CharT, std::enable_if_t< detail::is_character_v< CharT > > * = nullptr> |
| CharT | RandChar (CharT max) |
| | 生成 [CharT{}, max] 范围内的随机字符
|
| template<class CharT, class Engine, std::enable_if_t< detail::is_character_v< CharT > > * = nullptr> |
| CharT | RandChar (Engine &engine, CharT min, CharT max) |
| | 生成 [min, max] 范围内的随机字符(指定引擎重载)
|
| template<class CharT, class Engine, std::enable_if_t< detail::is_character_v< CharT > > * = nullptr> |
| CharT | RandChar (Engine &engine, CharT max) |
| | 生成 [CharT{}, max] 范围内的随机字符(指定引擎重载)
|
| template<class Container, std::enable_if_t< detail::is_random_access_container_v< Container > > * = nullptr> |
| decltype(auto) | RandElement (Container &c) |
| | 从容器中随机取一个元素(左值容器,返回引用)
|
| template<class Container, std::enable_if_t< detail::is_random_access_container_v< std::decay_t< Container > > > * = nullptr> |
| std::decay_t< Container >::value_type | RandElement (Container &&c) |
| | 从容器中随机取一个元素(右值容器,按值返回以避免悬垂引用)
|
| template<class It, std::enable_if_t< detail::is_random_access_iterator_v< It > > * = nullptr> |
| It | RandElement (It first, It last) |
| | 从迭代器范围内随机取一个元素(随机访问迭代器:O(1) 直接定位)
|
| template<class It, std::enable_if_t< detail::is_input_iterator_v< It > &&!detail::is_random_access_iterator_v< It > > * = nullptr> |
| It | RandElement (It first, It last) |
| | 从迭代器范围内随机取一个元素(输入迭代器:O(n) reservoir sampling)
|
| template<class It, class Engine, std::enable_if_t< detail::is_random_access_iterator_v< It > > * = nullptr> |
| It | RandElement (Engine &engine, It first, It last) |
| | 从迭代器范围内随机取一个元素(指定引擎,随机访问迭代器)
|
| template<class It, class Engine, std::enable_if_t< detail::is_input_iterator_v< It > &&!detail::is_random_access_iterator_v< It > > * = nullptr> |
| It | RandElement (Engine &engine, It first, It last) |
| | 从迭代器范围内随机取一个元素(指定引擎,输入迭代器)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandNormal (T mean=T{0}, T stddev=T{1}) |
| | 生成正态分布随机数
|
| template<class Engine, class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandNormal (Engine &engine, T mean=T{0}, T stddev=T{1}) |
| | 生成正态分布随机数(指定引擎重载)
|
| template<class Container, std::enable_if_t< detail::is_random_access_container_v< Container > > * = nullptr> |
| void | RandShuffle (Container &&c) |
| | 随机打乱容器
|
| template<class It, class T, std::enable_if_t< detail::is_rand_fillable_v< It, T > > * = nullptr> |
| void | RandFill (It first, It last, T min, T max) |
| | 用 [min, max] 范围的随机整数填充迭代器区间
|
| template<class It, class T, class Engine, std::enable_if_t< detail::is_rand_fillable_v< It, T > > * = nullptr> |
| void | RandFill (Engine &engine, It first, It last, T min, T max) |
| | 用 [min, max] 范围的随机整数填充迭代器区间(指定引擎重载)
|
| template<class T, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| std::vector< T > | RandVector (T min, T max, std::size_t n) |
| | 生成含 n 个随机整数的 vector
|
| template<class T, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| std::vector< T > | RandVector (T min, T max, std::size_t n) |
| | 生成含 n 个随机浮点数的 vector
|
| template<class T, class Engine, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| std::vector< T > | RandVector (Engine &engine, T min, T max, std::size_t n) |
| | 生成含 n 个随机整数的 vector(指定引擎重载)
|
| template<class T, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| std::vector< T > | RandVector (Engine &engine, T min, T max, std::size_t n) |
| | 生成含 n 个随机浮点数的 vector(指定引擎重载)
|
| template<class T, class Engine, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandInt (Engine &engine, T min, T max) |
| | 生成 [min, max] 范围内的随机整数(指定引擎重载)
|
| template<class T, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandReal (Engine &engine, T min=T{0}, T max=T{1}) |
| | 生成 [min, max) 范围内的随机浮点数(指定引擎重载)
|
| template<class Container, std::enable_if_t< detail::is_random_access_container_v< Container > > * = nullptr> |
| auto | RandSample (const Container &c, typename Container::size_type n) |
| | 无放回抽样:从容器中随机抽取 n 个元素(Fisher-Yates 前 n 步)
|
| template<class It, std::enable_if_t< detail::is_random_access_iterator_v< It > > * = nullptr> |
| std::vector< typename std::iterator_traits< It >::value_type > | RandSample (It first, It last, typename std::iterator_traits< It >::difference_type n) |
| template<class It, std::enable_if_t< detail::is_input_iterator_v< It > &&!detail::is_random_access_iterator_v< It > > * = nullptr> |
| std::vector< typename std::iterator_traits< It >::value_type > | RandSample (It first, It last, typename std::iterator_traits< It >::difference_type n) |
| template<class It, class Engine, std::enable_if_t< detail::is_random_access_iterator_v< It > > * = nullptr> |
| std::vector< typename std::iterator_traits< It >::value_type > | RandSample (Engine &engine, It first, It last, typename std::iterator_traits< It >::difference_type n) |
| template<class It, class Engine, std::enable_if_t< detail::is_input_iterator_v< It > &&!detail::is_random_access_iterator_v< It > > * = nullptr> |
| std::vector< typename std::iterator_traits< It >::value_type > | RandSample (Engine &engine, It first, It last, typename std::iterator_traits< It >::difference_type n) |
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandExp (T lambda=T{1}) |
| | 生成指数分布随机数
|
| template<class Engine, class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandExp (Engine &engine, T lambda=T{1}) |
| | 生成指数分布随机数(指定引擎重载)
|
| template<class T = int, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandPoisson (double mean=1.0) |
| | 生成泊松分布随机数
|
| template<class Engine, class T = int, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandPoisson (Engine &engine, double mean=1.0) |
| | 生成泊松分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandGamma (T alpha=T{1}, T beta=T{1}) |
| | 生成伽马分布随机数
|
| template<class Engine, class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandGamma (Engine &engine, T alpha=T{1}, T beta=T{1}) |
| | 生成伽马分布随机数(指定引擎重载)
|
| template<class T = int, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandBinomial (T t=1, double p=0.5) |
| | 生成二项分布随机数
|
| template<class T = int, class Engine, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandBinomial (Engine &engine, T t=1, double p=0.5) |
| | 生成二项分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandLogNormal (T mean=T{0}, T stddev=T{1}) |
| | 生成对数正态分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandLogNormal (Engine &engine, T mean=T{0}, T stddev=T{1}) |
| | 生成对数正态分布随机数(指定引擎重载)
|
| template<class T = int, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandGeometric (double p=0.5) |
| | 生成几何分布随机数(首次成功前的失败次数)
|
| template<class T = int, class Engine, std::enable_if_t< std::is_integral_v< T > > * = nullptr> |
| T | RandGeometric (Engine &engine, double p=0.5) |
| | 生成几何分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandCauchy (T a=T{0}, T b=T{1}) |
| | 生成柯西分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandCauchy (Engine &engine, T a=T{0}, T b=T{1}) |
| | 生成柯西分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandWeibull (T a=T{1}, T b=T{1}) |
| | 生成韦布尔分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandWeibull (Engine &engine, T a=T{1}, T b=T{1}) |
| | 生成韦布尔分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandExtremeValue (T a=T{0}, T b=T{1}) |
| | 生成极值分布(Gumbel)随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandExtremeValue (Engine &engine, T a=T{0}, T b=T{1}) |
| | 生成极值分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandChiSquared (T n=T{1}) |
| | 生成卡方分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandChiSquared (Engine &engine, T n=T{1}) |
| | 生成卡方分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandStudentT (T n=T{1}) |
| | 生成学生 t 分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandStudentT (Engine &engine, T n=T{1}) |
| | 生成学生 t 分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandFisherF (T m=T{1}, T n=T{1}) |
| | 生成 Fisher F 分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandFisherF (Engine &engine, T m=T{1}, T n=T{1}) |
| | 生成 Fisher F 分布随机数(指定引擎重载)
|
| template<class T = double, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandBeta (T a=T{1}, T b=T{1}) |
| | 生成 Beta 分布随机数
|
| template<class T = double, class Engine, std::enable_if_t< std::is_floating_point_v< T > > * = nullptr> |
| T | RandBeta (Engine &engine, T a=T{1}, T b=T{1}) |
| | 生成 Beta 分布随机数(指定引擎重载)
|
| template<int N, class T = std::uint64_t, std::enable_if_t< std::is_integral_v< T > &&(N > 0) &&(N<=64) &&(N<=std::numeric_limits< T >::digits)> * = nullptr> |
| T | RandBits () noexcept |
| | 生成 N 位随机整数
|
| template<class CharT, class Traits, class Engine, std::enable_if_t< detail::is_serializable_engine_v< Engine > > * = nullptr> |
| std::basic_ostream< CharT, Traits > & | operator<< (std::basic_ostream< CharT, Traits > &os, const Engine &engine) |
| template<class CharT, class Traits, class Engine, std::enable_if_t< detail::is_serializable_engine_v< Engine > > * = nullptr> |
| std::basic_istream< CharT, Traits > & | operator>> (std::basic_istream< CharT, Traits > &is, Engine &engine) |