# Random\Engine\PcgOneseq128XslRr64::jump

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::jump — Déplace le moteur en avant de plusieurs pas

### Description

public Random\Engine\PcgOneseq128XslRr64::jump(int `$advance`): void

Déplace l'état de l'algorithme en avant du nombre de pas donné par `advance`, comme si Random\Engine\PcgOneseq128XslRr64::generate() était appelé autant de fois.

### Liste de paramètres

`advance`

  Le nombre de pas à avancer; doit être `0` ou plus.

### Valeurs de retour

Aucune valeur n'est retournée.

### Erreurs / Exceptions

- Si `advance` est inférieur à `0`, une ValueError sera lancée.

### Exemples

Exemple #1 Exemple de Random\Engine\PcgOneseq128XslRr64::jump()

`<?php
$a = new \Random\Engine\PcgOneseq128XslRr64(0);
$b = clone $a;
for ($i = 0; $i < 1_000; $i++) {
$a->generate();
}
$b->jump(1_000);
echo "A: ", bin2hex($a->generate()), "\n";
echo "B: ", bin2hex($b->generate()), "\n";
?>`

L'exemple ci-dessus va afficher :

    A: e6d0d5813913a424
    B: e6d0d5813913a424

Exemple #2 >Les méthodes de Randomizer peuvent appeler le moteur plus d'une fois

`<?php
$a = new \Random\Randomizer(new \Random\Engine\PcgOneseq128XslRr64(42659));
$b = new \Random\Randomizer(clone $a->engine);
$a->getInt(1, 1572864); // Performs two calls to generate().
$a->getInt(1, 1572864);
$b->engine->jump(2);
// Car le premier appel à ->getInt() a appelé ->generate() deux fois
// les moteurs ne correspondent pas après avoir effectué un ->jump(2).
echo "A: ", bin2hex($a->engine->generate()), "\n";
echo "B: ", bin2hex($b->engine->generate()), "\n";
// Désormais le moteur B correspond au moteur A.
echo "B: ", bin2hex($b->engine->generate()), "\n";
?>`

L'exemple ci-dessus va afficher :

    A: 1e9f3107d56653d0
    B: a156c0086dd79d44
    B: 1e9f3107d56653d0