Déplace de manière efficace le moteur en avant de 2^192 pas

# Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jumpLong — Déplace de manière efficace le moteur en avant de 2^192 pas

### Description

public function Random\Engine\Xoshiro256StarStar::jumpLong(): void

Déplace l'état de l'algorithme en avant de 2192 pas, comme si Random\Engine\Xoshiro256StarStar::generate() était appelé 2192 fois.

L'objectif d'un long saut est de faciliter la création d'un nouveau Random\Engine\Xoshiro256StarStar à partir d'un moteur Random\Engine\Xoshiro256StarStar initialisé existant. Le moteur initialisé agit comme un modèle, qui peut être cloné et sauté à plusieurs reprises pour créer 264 séquences non chevauchantes avec 2192 valeurs chacune.

Les longs sauts peuvent être combinés avec le Random\Engine\Xoshiro256StarStar::jump() pour diviser davantage chacune des 264 séquences générées par un long saut, en 264 séquences de 2128 valeurs chacune.

### Liste de paramètres

Cette fonction ne contient aucun paramètre.

### Valeurs de retour

Aucune valeur n'est retournée.

### Exemples

Exemple #1 Exemple de Random\Engine\Xoshiro256StarStar::jumpLong()

    <?php
    $blueprintRng = new \Random\Engine\Xoshiro256StarStar(0);

    // Chaque moteur parent aura son propre morceau de 2**192 valeurs.
    $parent1 = clone $blueprintRng;
    $blueprintRng->jumpLong();

    $parent2 = clone $blueprintRng;
    $blueprintRng->jumpLong();

    // Chacun des moteurs enfants aura son propre morceau de 2**128 valeurs
    // prises dans le morceau de 2**192 valeurs de leur moteur parent.
    $child1a = clone $parent1;
    $parent1->jump();
    $child1b = clone $parent1;
    $parent1->jump();

    $child2a = clone $parent2;
    $parent2->jump();
    $child2b = clone $parent2;
    $parent2->jump();

    echo "Child 1A: ", bin2hex($child1a->generate()), "\n";
    echo "Child 1B: ", bin2hex($child1b->generate()), "\n";
    echo "Child 2A: ", bin2hex($child2a->generate()), "\n";
    echo "Child 2B: ", bin2hex($child2b->generate()), "\n";
    ?>

L'exemple ci-dessus va afficher :

    Child 1A: b4f275cb365fec99
    Child 1B: 2cd646c8ed156237
    Child 2A: eb3729a722a504e7
    Child 2B: d4208dc85bdd6dc3

### Voir aussi

- Random\Engine\Xoshiro256StarStar::jump() - Déplace de manière efficace le moteur en avant de 2^128 pas

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open