Namespaces
Variants

std::experimental::ranges:: UniformRandomNumberGenerator

From cppreference.net
Definiert in Header <experimental/ranges/random>
template < class G >

concept bool UniformRandomNumberGenerator =
Invocable < G & > &&
UnsignedIntegral < std:: result_of_t < G & ( ) >> &&
requires {
{ G :: min ( ) } - > Same < std:: result_of_t < G & ( ) >> && ;
{ G :: max ( ) } - > Same < std:: result_of_t < G & ( ) >> && ;

} ;
(ranges TS)

Das Konzept UniformRandomNumberGenerator<G> spezifiziert, dass G der Typ eines gleichverteilten Zufallszahlengenerators ist, das heißt, Objekte vom Typ G sind Funktionsobjekte, die vorzeichenlose Ganzzahlwerte zurückgeben, sodass jeder Wert im Bereich der möglichen Ergebnisse (idealiter) die gleiche Wahrscheinlichkeit hat, zurückgegeben zu werden.

UniformRandomNumberGenerator<G> ist nur dann erfüllt, wenn für jedes beliebige Objekt g vom Typ G gilt:

  • G::min() und G::max() sind prvalue-Konstantenausdrücke;
  • G::min() < G::max()
  • g() liegt im Bereich [G::min(), G::max()]
  • g() hat amortisierte konstante Komplexität.