(PHP 8 >= 8.2.0)
Random\Engine\Xoshiro256StarStar::jumpLong β ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π΄Π²ΠΈΠΆΠΎΠΊ Π²ΠΏΠ΅ΡΡΠ΄ Π½Π° 2^192 ΡΠ°Π³Π°
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΠΏΠ΅ΡΡΠ΄ Π½Π° 2192 ΡΠ°Π³Π°, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΠ΅ΡΠΎΠ΄ Random\Engine\Xoshiro256StarStar::generate() Π±ΡΠ» Π²ΡΠ·Π²Π°Π½ 2192 ΡΠ°Π·Π°.
Π¦Π΅Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° - ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Random\Engine\Xoshiro256StarStar ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° Random\Engine\Xoshiro256StarStar. ΠΠ°Π΄Π°Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 264 Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Ρ 2192 Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ.
ΠΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½ Ρ Random\Engine\Xoshiro256StarStar::jump() Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· 264 ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, Π½Π° 264 ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ 2128 Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄Π°Ρ.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Random\Engine\Xoshiro256StarStar::jumpLong()
<?php
$blueprintRng = new \Random\Engine\Xoshiro256StarStar(0);
// Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΈΠ· 2**192 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
$parent1 = clone $blueprintRng;
$blueprintRng->jumpLong();
$parent2 = clone $blueprintRng;
$blueprintRng->jumpLong();
// Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΈΠ· 2**128 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ,
// Π²Π·ΡΡΡΠΉ ΠΈΠ· Π±Π»ΠΎΠΊΠ° 2**192 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡ
ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°.
$child1a = clone $parent1;
$parent1->jump();
$child1b = clone $parent1;
$parent1->jump();
$child2a = clone $parent2;
$parent2->jump();
$child2b = clone $parent2;
$parent2->jump();
echo "ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 1A: ", bin2hex($child1a->generate()), "\n";
echo "ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 1B: ", bin2hex($child1b->generate()), "\n";
echo "ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 2A: ", bin2hex($child2a->generate()), "\n";
echo "ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 2B: ", bin2hex($child2b->generate()), "\n";
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 1A: b4f275cb365fec99 ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 1B: 2cd646c8ed156237 ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 2A: eb3729a722a504e7 ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ 2B: d4208dc85bdd6dc3