(PHP 8 >= 8.2.0)
Random\Engine\Xoshiro256StarStar::jumpLong — Avanza de manera eficiente el motor 2^192 pasos
Avanza el estado del algoritmo 2192 pasos, como si Random\Engine\Xoshiro256StarStar::generate() fuera llamado 2192 veces.
El objetivo de un salto largo es facilitar la creación de un nuevo Random\Engine\Xoshiro256StarStar a partir de un motor Random\Engine\Xoshiro256StarStar inicializado existente. El motor inicializado actúa como una plantilla, que puede ser clonada y saltada repetidamente para crear 264 secuencias no superpuestas con 2192 valores cada una.
Los saltos largos pueden combinarse con Random\Engine\Xoshiro256StarStar::jump() para dividir aún más cada una de las 264 secuencias generadas por un salto largo, en 264 secuencias de 2128 valores cada una.
Esta función no tiene parámetros.
No devuelve ningún valor.
Ejemplo #1 Ejemplo de Random\Engine\Xoshiro256StarStar::jumpLong()
<?php
$blueprintRng = new \Random\Engine\Xoshiro256StarStar(0);
// Cada motor padre tendrá su propio trozo de 2**192 valores.
$parent1 = clone $blueprintRng;
$blueprintRng->jumpLong();
$parent2 = clone $blueprintRng;
$blueprintRng->jumpLong();
// Cada uno de los motores hijos tendrá su propio trozo de 2**128 valores
// tomados del trozo de 2**192 valores de su motor padre.
$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";
?>
El resultado del ejemplo sería:
Child 1A: b4f275cb365fec99 Child 1B: 2cd646c8ed156237 Child 2A: eb3729a722a504e7 Child 2B: d4208dc85bdd6dc3