International PHP Conference Munich 2025

Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jumpLongAvanza de manera eficiente el motor 2^192 pasos

Descripción

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

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.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

No devuelve ningún valor.

Ejemplos

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

Ver también

add a note

User Contributed Notes

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