Namespaces
Variants

std::philox_engine<UIntType,w,n,r,consts>:: philox_engine

From cppreference.net
philox_engine ( ) : philox_engine ( default_seed ) { }
(1) (desde C++26)
explicit philox_engine ( result_type value ) ;
(2) (desde C++26)
template < class SeedSeq >
explicit philox_engine ( SeedSeq & seq ) ;
(3) (desde C++26)
philox_engine ( const philox_engine & other ) ;
(4) (desde C++26)
(declarado implícitamente)

Construye el motor de números pseudoaleatorios.

1) El constructor por defecto.
  • Si el motor construido por defecto es de tipo std::philox4x32 , la 10000ª invocación consecutiva del mismo produce el valor 1955073260 .
  • Si el motor construido por defecto es de tipo std::philox4x64 , la 10000ª invocación consecutiva del mismo produce el valor 3409172418970261260 .
2) Construye el motor con un valor de semilla value . El estado inicial del motor se determina de la siguiente manera: [1]
  • Todos los elementos de la secuencia X se establecen en cero.
  • El primer elemento de la secuencia K se establece en value mod 2 w
    , los elementos restantes se establecen en cero.
  • El valor de j se establece en n - 1 .
3) Construye el motor con una secuencia de semilla seq . El estado inicial del motor se determina de la siguiente manera: [1]
  • Todos los elementos de la secuencia X se establecen en cero.
  • Dado ( w - 1 ) / 32 + 1 como p , los elementos de la secuencia K se establecen mediante los siguientes pasos:
  1. Crea un objeto de array inventado a de longitud n / 2 * p .
  2. Llama seq. generate ( a + 0 , a + n / 2 * p ) .
  3. Para cada entero k en [ 0 , n / 2 ) , establece K k como (∑ p-1
    i=0
    a k·p+i ·2 32i
    ) mod 2 w
    .
  • El valor de j se establece en n - 1 .
Esta sobrecarga participa en la resolución de sobrecarga solo si SeedSeq cumple con los requisitos de SeedSequence .
4) El constructor de copia. Al construir, * this == other es true .


  1. 1.0 1.1 El buffer Y no se está estableciendo intencionalmente. Como j se está estableciendo en n - 1 , la siguiente transición de estado siempre genera nuevos valores aleatorios y los almacena en Y .

Contenidos

Parámetros

value - valor de semilla a utilizar en la inicialización del estado interno
seq - secuencia de semilla a utilizar en la inicialización del estado interno

Complejidad

1,2) Constante.
3) Igual que la complejidad de la llamada a seq.generate .
4) Constante.

Excepciones

3) Si SeedSeq no es std::seed_seq , lanza las excepciones generadas por la llamada seq.generate .

Véase también

establece el estado actual del motor
(función miembro pública)
establece el contador actual del motor
(función miembro pública)