subtract_with_carry_engine::seed

Injecte le moteur.

void seed(UIntType x0 = default_seed);
void seed(seed_seq& seq);

Paramètres

  • x0
    La valeur initiale.

  • seq
    L'objet du type seed_seq qui fournit la valeur de départ randomisée.

Notes

Condition préalable : 0 < x0

La première fonction de départ construit efficacement le moteur gen:

    linear_congruential_engine<UIntType, 40014, 0, 2147483563>
    gen(x0 == 0 ? default_seed: x0);

Il définit ensuite les valeurs historique d' R à partir h[0] aux valeurs produites en appelant gen().

La deuxième fonction de départ définit ces valeurs historiques comme suit :

  • k est le nombre d'entiers d' unsigned long nécessaires pour fournir tous les bits dans un entier d' UIntType (au moins 1).

  • a est un tableau d'éléments d' R * k de type UIntType.

  • a est initialisé en appelant seq.generate(&a[0], &a[R * k]).

  • Chaque h[i] est composé de comprimant les éléments d' k en commençant à a[i * k], qui fournit les bits de poids faible.

  • Chaque h[i] modulo est réduit M.

Dans les deux cas, les sont stockés présentent des h[R - 1] == 0.

Configuration requise

en-tête : <random>

l'espace de noms : DST

Voir aussi

Référence

<random>

subtract_with_carry_engine Class