C++ named requirements: UniformRandomBitGenerator (since C++11)
Un generador uniforme de bits aleatorios es un objeto función que devuelve valores enteros sin signo de modo que cada valor en el rango de resultados posibles tiene (idealmente) igual probabilidad.
Los generadores uniformes de bits aleatorios no están destinados a ser utilizados como generadores de números aleatorios: se utilizan como fuente de bits aleatorios (generados en bloque, para eficiencia). Cualquier generador uniforme de bits aleatorios puede conectarse a cualquier distribución de números aleatorios para obtener un número aleatorio (formalmente, una variante aleatoria).
Contenidos |
Requisitos
El tipo
G
satisface
UniformRandomBitGenerator
si
|
Dado
g
, un valor de tipo
|
(hasta C++20) |
| Expresión | Tipo | Requisitos |
|---|---|---|
| G :: min ( ) |
G::result_type
|
|
| G :: max ( ) |
G::result_type
|
|
| g ( ) |
G::result_type
|
|
|
Se satisfacen todas las siguientes condiciones:
|
(desde C++20) |
Notas
Todos los RandomNumberEngine s satisfacen este requisito.
Biblioteca estándar
Las siguientes facilidades de la biblioteca estándar esperan un tipo UniformRandomBitGenerator .
|
(until C++17)
(C++11)
|
reordena aleatoriamente elementos en un rango
(function template) |
|
(C++17)
|
selecciona N elementos aleatorios de una secuencia
(function template) |
|
(C++11)
|
distribuye uniformemente valores reales de precisión dada a través de
[
0
,
1
)
(function template) |
|
(C++11)
|
produce valores enteros distribuidos uniformemente a través de un rango
(class template) |
|
(C++11)
|
produce valores reales distribuidos uniformemente a través de un rango
(class template) |
| todas las demás distribuciones de números aleatorios | |
Las siguientes facilidades de la biblioteca estándar satisfacen UniformRandomBitGenerator sin satisfacer adicionalmente RandomNumberEngine :
|
(C++11)
|
generador de números aleatorios no determinista que utiliza una fuente de entropía de hardware
(clase) |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
|
LWG 2154
( P0898R3 ) |
C++11 |
no estaba claro si
G
::
min
(
)
y
G
::
max
(
)
deben ser expresiones constantes [1] |
requerido |
- ↑ El requisito de complejidad temporal para estas expresiones era "en tiempo de compilación" antes de C++20. La redacción es ambigua, ya que "complejidad temporal en tiempo de compilación" puede interpretarse tanto como "puede evaluarse en tiempo de compilación" y "la complejidad temporal puede determinarse en tiempo de compilación".
Véase también
|
(C++20)
|
especifica que un tipo califica como un uniform random bit generator
(concept) |