Namespaces
Variants

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

From cppreference.net
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 :
  1. Crée un objet tableau fictif a de longueur n / 2 * p .
  2. Appelle seq. generate ( a + 0 , a + n / 2 * p ) .
  3. 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. 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

3) Si SeedSeq n'est pas std::seed_seq , lance les exceptions levées par l'appel seq.generate .

Voir aussi

définit l'état actuel du moteur
(fonction membre publique)
définit le compteur actuel du moteur
(fonction membre publique)