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) | (depuis C++26) |
|
explicit
philox_engine
(
result_type value
)
;
|
(2) | (depuis C++26) |
|
template
<
class
SeedSeq
>
explicit philox_engine ( SeedSeq & seq ) ; |
(3) | (depuis C++26) |
|
philox_engine
(
const
philox_engine
&
other
)
;
|
(4) |
(depuis C++26)
(déclaré implicitement) |
Construit le moteur de nombres pseudo-aléatoires.
1)
Le constructeur par défaut.
-
Si le moteur construit par défaut est de type
std::philox4x32, la 10000ème invocation consécutive de celui-ci produit la valeur 1955073260 . -
Si le moteur construit par défaut est de type
std::philox4x64, la 10000ème invocation consécutive de celui-ci produit la valeur 3409172418970261260 .
2)
Construit le moteur avec une valeur de graine
value
. L'état initial du moteur est déterminé comme suit :
[1]
- Tous les éléments de la séquence X sont initialisés à zéro.
-
Le premier élément de la séquence
K
est défini à
value mod 2
w
, les éléments restants sont initialisés à zéro. - La valeur de j est définie à n - 1 .
3)
Construit le moteur avec une séquence de graines
seq
. L'
état initial
du moteur est déterminé comme suit :
[1]
- Tous les éléments de la séquence X sont initialisés à zéro.
- En prenant ( w - 1 ) / 32 + 1 comme p , les éléments de la séquence K sont définis par les étapes suivantes :
- Crée un objet tableau fictif a de longueur n / 2 * p .
- Appelle seq. generate ( a + 0 , a + n / 2 * p ) .
-
Pour chaque entier
k
dans
[ 0 ,n / 2), définit K k comme (∑ p-1
i=0 a k·p+i ·2 32i
) mod 2 w
.
- La valeur de j est définie à n - 1 .
Cette surcharge participe à la résolution de surcharge uniquement si
SeedSeq
satisfait aux exigences de
SeedSequence
.
4)
Le constructeur de copie. Lors de la construction,
*
this
==
other
est
true
.
- ↑ 1.0 1.1 Le tampon Y n'est intentionnellement pas défini. Comme j est défini à n - 1 , la prochaine transition d'état génère toujours de nouvelles valeurs aléatoires et les stocke dans Y .
Table des matières |
Paramètres
| value | - | valeur de départ à utiliser dans l'initialisation de l'état interne |
| seq | - | séquence de départ à utiliser dans l'initialisation de l'état interne |
Complexité
1,2)
Constant.
3)
Identique à la complexité de l'appel
seq.generate
.
4)
Constante.
Exceptions
Voir aussi
|
définit l'état actuel du moteur
(fonction membre publique) |
|
|
définit le compteur actuel du moteur
(fonction membre publique) |