std::philox_engine<UIntType,w,n,r,consts>:: philox_engine
From cppreference.net
<
cpp
|
numeric
|
random
|
philox engine
|
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:
- Crea un objeto de array inventado a de longitud n / 2 * p .
- Llama seq. generate ( a + 0 , a + n / 2 * p ) .
-
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.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
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) |