Espacios de nombres
Variantes
Acciones

Requisitos denominados de C++:UniformRandomBitGenerator(desde C++11)

De cppreference.com
< cpp‎ | named req
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

Un generador de bits aleatorio uniforme es un objeto función que devuelve valores enteros sin signo donde cada valor en el rango de posibles resultados tiene la misma probabilidad (idealmente).

Los generadores de bits aleatorios uniformes no están pensados para usarse como generadores de números aleatorios: se usan como fuente de bits aleatorios (generados en masa, por eficiencia). Cualquier generador de bits aleatorios uniformes se puede conectar a cualquier distribución de números aleatorios para obtener un número aleatorio (formalmente, una variable aleatoria).

Contenido

[editar]Requisitos

El tipo G satisface GeneradorDeBitsAleatorioUniforme si

Dado g, un valor de tipo G, se satisfacen todas las condiciones siguientes:

  • G::result_type es válido, y denota un tipo entero sin signo.
  • Las siguientes expresiones deben ser válidas y tener sus efectos especificados:
(hasta C++20)
 Expresión TipoRequisitos
G::min()G::result_type 
  • Produce el valor más pequeño que el operator() de G puede devolver. 
  • El valor del resultado es estrictamente menor que G::max().
  • La expresión debe ser una expresión constante.
G::max()G::result_type
  • Produce el valor más grande que el operator() de G puede devolver.
  • El valor del resultado es estrictamente mayor que G::min().
  • La expresión debe ser una expresión constante.
g()G::result_type
  • Devuelve un valor en el intervalo cerrado [G::min()G::max()).
  • Tiene complejidad constante amortizada.

Se satisfacen todas las condiciones siguientes:

(desde C++20)

[editar]Notas

Todos los MotorDeNúmerosAleatorios satisfacen este requisito.

[editar]Biblioteca estándar

Las siguientes funciones de la biblioteca estándar esperan un tipo GeneradorDeBitsAleatorioUniforme.

(hasta C++17)(C++11)
Reordena aleatoriamente elementos en un rango.
(plantilla de función)[editar]
(C++17)
Selecciona N elementos aleatorios de una secuencia.
(plantilla de función)[editar]
Distribuye uniformemente los valores reales de precisión dada en el rango [01).
(plantilla de función)[editar]
Produce valores enteros distribuidos uniformemente en un rango.
(plantilla de clase)[editar]
Produce valores reales distribuidos uniformemente en un rango.
(plantilla de clase)[editar]
todas las demás distribuciones de números aleatorios

Las siguientes funciones de la biblioteca estándar satisfacen GeneradorDeBitsAleatorioUniforme sin satisfacer MotorDeNúmerosAleatorios adicionalmente:

Generador de números aleatorios no determinista usando como fuente entropía hardware.
(clase)[editar]

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
P0898R3 C++11 No estaba claro si G::min() y G::max()debían ser
expresiones constantes[1]
Se requiere.
  1. Antes de C++20, el requisito de complejidad temporal para estas expresiones era “tiempo de compilación”. Esta redacción es ambigua, ya que “complejidad temporal en tiempo de compilación” se puede interpretar como “se puede evaluar en tiempo de compilación” y “la complejidad temporal se puede determinar en tiempo de compilación”.

[editar]Véase también

Especifica que un tipo se califica como un generador de bits aleatorios uniforme.
(concepto)[editar]
close