Эффективно перемещает движок вперёд на 2^192 шага

# Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jumpLong — Эффективно перемещает движок вперёд на 2^192 шага

### Описание

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

Перемещает состояние алгоритма вперёд на 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

### Смотрите также

- Random\Engine\Xoshiro256StarStar::jump() - Эффективно перемещает движок вперёд на 2^128 шагов

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