# std::experimental::ranges::UniformRandomNumberGenerator

< cpp‎ | experimental‎ | ranges

定义于头文件 `<experimental/ranges/random>` |  |
template <class G> concept bool UniformRandomNumberGenerator = ranges::Invocable<G&> && ranges::UnsignedIntegral<std::result_of_t<G&()>> && requires { { G::min() } -> ranges::Same<std::result_of_t<G&()>>&&; { G::max() } -> ranges::Same<std::result_of_t<G&()>>&&; }; |  | (范围 TS)

概念 `UniformRandomNumberGenerator<G>` 指定 `G` 是均匀随机数生成器的类型，即 `G` 类型对象是返回无符号整数的函数对象，使得可能结果范围中的每个值都拥有（概念上）相等的被返回概率。

`UniformRandomNumberGenerator<G>` 仅若符合下列条件才得到满足。给定任何 `G` 类型对象 `g` ：

- `G::min()` 与 `G::max()` 是纯右值常量表达式；
- `G::min() < G::max()`
- `g()` 在 `[G::min(), G::max()]` 范围中
- `g()` 拥有均摊常数复杂度。