C++ named requirements: UniformRandomBitGenerator (since C++11)
Un générateur de bits aléatoire uniforme est un objet fonction retournant des valeurs entières non signées telles que chaque valeur dans la plage des résultats possibles a (idéalement) une probabilité égale.
Les générateurs uniformes de bits aléatoires ne sont pas destinés à être utilisés comme générateurs de nombres aléatoires : ils sont utilisés comme source de bits aléatoires (générés en bloc, pour l'efficacité). Tout générateur uniforme de bits aléatoires peut être connecté à toute distribution de nombres aléatoires afin d'obtenir un nombre aléatoire (formellement, une variable aléatoire).
Table des matières |
Exigences
Le type
G
satisfait
UniformRandomBitGenerator
si
|
Étant donné
g
, une valeur de type
|
(jusqu'à C++20) |
| Expression | Type | Exigences |
|---|---|---|
| G :: min ( ) |
G::result_type
|
|
| G :: max ( ) |
G::result_type
|
|
| g ( ) |
G::result_type
|
|
|
Toutes les conditions suivantes sont satisfaites :
|
(depuis C++20) |
Notes
Tous les RandomNumberEngine s satisfont à cette exigence.
Bibliothèque standard
Les fonctionnalités suivantes de la bibliothèque standard attendent un type UniformRandomBitGenerator .
|
(until C++17)
(C++11)
|
réorganise aléatoirement les éléments dans une plage
(modèle de fonction) |
|
(C++17)
|
sélectionne N éléments aléatoires d'une séquence
(modèle de fonction) |
|
(C++11)
|
distribue uniformément des valeurs réelles de précision donnée sur
[
0
,
1
)
(modèle de fonction) |
|
(C++11)
|
produit des valeurs entières uniformément distribuées sur une plage
(modèle de classe) |
|
(C++11)
|
produit des valeurs réelles uniformément distribuées sur une plage
(modèle de classe) |
| toutes les autres distributions de nombres aléatoires | |
Les fonctionnalités suivantes de la bibliothèque standard satisfont UniformRandomBitGenerator sans satisfaire en plus RandomNumberEngine :
|
(C++11)
|
générateur de nombres aléatoires non déterministe utilisant une source d'entropie matérielle
(classe) |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
|
LWG 2154
( P0898R3 ) |
C++11 |
il n'était pas clair si
G
::
min
(
)
et
G
::
max
(
)
doivent être des expressions constantes [1] |
requis |
- ↑ L'exigence de complexité temporelle pour ces expressions était « à la compilation » avant C++20. La formulation est ambiguë, car « complexité temporelle à la compilation » peut être interprétée à la fois comme « peut être évaluée à la compilation » et « la complexité temporelle peut être déterminée à la compilation ».
Voir aussi
|
(C++20)
|
spécifie qu'un type est qualifié comme générateur uniforme de bits aléatoires
(concept) |