Namespaces
Variants

C++ named requirements: RandomNumberDistribution (since C++11)

From cppreference.net
C++ named requirements

Une RandomNumberDistribution est un objet fonction qui retourne des nombres aléatoires selon une fonction de densité de probabilité p(x) ou une distribution de probabilité discrète P(x i ) .

Exigences

Le type D satisfait RandomNumberDistribution si

Étant donné

  • T , le type nommé par D :: result_type
  • P , le type nommé par D :: param_type , qui
  • satisfait CopyConstructible
  • satisfait CopyAssignable
  • satisfait EqualityComparable
  • possède un constructeur prenant des arguments identiques à chacun des constructeurs de D qui prennent des arguments correspondant aux paramètres de la distribution
  • possède une fonction membre avec le nom, le type et la sémantique identiques à chaque fonction membre de D qui retourne un paramètre de la distribution
  • déclare un typedef membre using distribution_type = D ;

Les expressions suivantes doivent être valides et avoir leurs effets spécifiés

Expression Type Notes Complexité
D::result_type T Un type arithmétique Compile-time
D::param_type P Compile-time
D() Crée une distribution indiscernable de toute autre instance de D construite par défaut Constante
D(p) Crée une distribution indiscernable de D construite directement à partir des valeurs utilisées pour construire p Identique à la construction de p
d.reset() void Réinitialise l'état interne de la distribution. Le prochain appel à operator() sur d ne dépendra pas des valeurs produites par un moteur avant reset() Constante
x.param() P Retourne p tel que D ( p ) . param ( ) == p Pas pire que D(p)
d.param(p) void Postcondition : d. param ( ) == p Pas pire que D(p)
d(g) T La séquence de nombres retournés par des appels successifs avec le même g est distribuée aléatoirement selon la distribution paramétrée par d.param() Nombre amorti constant d'appels à g
d(g,p) T La séquence de nombres retournés par des appels successifs avec le même g est distribuée aléatoirement selon la distribution paramétrée par p Nombre amorti constant d'appels à g
x.min() T La plus grande borne inférieure des valeurs potentiellement retournées par operator() de x , déterminée par les valeurs actuelles des paramètres de x Constante
x.max() T La plus petite borne supérieure des valeurs potentiellement retournées par operator() de x , déterminée par les valeurs actuelles des paramètres de x Constante
x == y bool Établit une relation d'équivalence. Retourne true si x. param ( ) == y. param ( ) et que les futures séquences infinies de valeurs générées par des appels répétés à x ( g1 ) et y ( g2 ) seraient égales tant que g1 == g2 Constante
x != y bool !(x == y) Constante
os << x Référence au type de os Écrit une représentation textuelle des paramètres de distribution et de l'état interne dans os . Les indicateurs de formatage et le caractère de remplissage de os restent inchangés
is >> d Référence au type de is Restaure les paramètres de distribution et l'état interne avec les données lues depuis is . Les indicateurs de formatage de is restent inchangés. Les données doivent avoir été écrites avec un flux ayant les mêmes paramètres de template de flux CharT et Traits , sinon le comportement est indéfini. Si une entrée incorrecte est rencontrée, is. setstate ( std :: ios :: failbit ) est appelée, ce qui peut lever std::ios_base::failure . d reste inchangé dans ce cas

Notes

Les paramètres d'un objet de distribution peuvent être modifiés soit de manière permanente, en utilisant d. param ( p ) , soit uniquement pour la durée d'un appel unique à operator(), en utilisant d ( g,p ) .

Les appels aux fonctions membres constantes de la distribution et os << d n'affectent pas la séquence de nombres produite par des appels répétés à d ( g ) .

Bibliothèque standard

Les composants suivants de la bibliothèque standard satisfont RandomNumberDistribution

produit des valeurs entières uniformément réparties sur une plage
(modèle de classe)
produit des valeurs réelles uniformément réparties sur une plage
(modèle de classe)
produit des valeurs bool selon une distribution de Bernoulli
(classe)
produit des valeurs entières selon une distribution binomiale
(modèle de classe)
produit des valeurs entières selon une distribution binomiale négative
(modèle de classe)
produit des valeurs entières selon une distribution géométrique
(modèle de classe)
produit des valeurs entières selon une distribution de Poisson
(modèle de classe)
produit des valeurs réelles selon une distribution exponentielle
(modèle de classe)
produit des valeurs réelles selon une distribution Gamma
(modèle de classe)
produit des valeurs réelles selon une distribution de Weibull
(modèle de classe)
produit des valeurs réelles selon une distribution des valeurs extrêmes
(modèle de classe)
produit des valeurs réelles selon une distribution normale standard (gaussienne)
(modèle de classe)
produit des valeurs réelles selon une distribution log-normale
(modèle de classe)
produit des valeurs réelles selon une distribution du Chi-carré
(modèle de classe)
produit des valeurs réelles selon une distribution de Cauchy
(modèle de classe)
produit des valeurs réelles selon une distribution F de Fisher
(modèle de classe)
produit des valeurs réelles selon une distribution de Student
(modèle de classe)
produit des valeurs entières selon une distribution discrète
(modèle de classe)
produit des valeurs réelles distribuées sur des sous-intervalles constants
(modèle de classe)
produit des valeurs réelles distribuées sur des sous-intervalles définis
(modèle de classe)