PHP 8.4.1 Released!

Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

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

Description

public 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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top