C++ named requirements: RandomNumberDistribution (since C++11)
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
-
Dsatisfait CopyConstructible -
Dsatisfait CopyAssignable
É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
Dqui 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
Dqui retourne un paramètre de la distribution - déclare un typedef membre using distribution_type = D ;
-
d, une valeur de typeD -
xety, des valeurs (éventuellement const) de typeD -
p, une valeur (éventuellement const) de typeP -
g,g1,g2, des lvalues d'un type satisfaisant UniformRandomBitGenerator -
os, lvalue d'une spécialisation de std::basic_ostream -
is, lvalue d'une spécialisation de std::basic_istream
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
|
(C++11)
|
produit des valeurs entières uniformément réparties sur une plage
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles uniformément réparties sur une plage
(modèle de classe) |
|
(C++11)
|
produit des valeurs
bool
selon une
distribution de Bernoulli
(classe) |
|
(C++11)
|
produit des valeurs entières selon une
distribution binomiale
(modèle de classe) |
|
(C++11)
|
produit des valeurs entières selon une
distribution binomiale négative
(modèle de classe) |
|
(C++11)
|
produit des valeurs entières selon une
distribution géométrique
(modèle de classe) |
|
(C++11)
|
produit des valeurs entières selon une
distribution de Poisson
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution exponentielle
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution Gamma
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution de Weibull
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution des valeurs extrêmes
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution normale standard (gaussienne)
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution log-normale
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution du Chi-carré
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution de Cauchy
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution F de Fisher
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles selon une
distribution de Student
(modèle de classe) |
|
(C++11)
|
produit des valeurs entières selon une distribution discrète
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles distribuées sur des sous-intervalles constants
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles distribuées sur des sous-intervalles définis
(modèle de classe) |