Случайное число

# gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random — Случайное число

Внимание

Начиная с PHP 7.2.0 функция УСТАРЕЛА, а в PHP 8.0.0 функцию УДАЛИЛИ. Полагаться на функцию настоятельно не рекомендуют.

### Описание

function gmp_random(int `$limiter` = 20): GMP

Генерирует случайное число. Число будет лежать в пределах от нуля до (2 ** n) - 1, где n - это число, представляющее из себя произведение числа `limiter` и количества бит в лимбе (limb). Если число `limiter` отрицательное, то будет возвращён отрицательный результат.

Лимб (дословно конечность) - внутренний GMP механизм. Технически это часть числа, помещающаяся в одно машинное слово. Количество бит в нем может различаться в разных системах. В основном это либо 32, либо 64, но это не гарантируется.

Предостережение

Функция не создаёт безопасные для криптографических целей значения, поэтому функцию нельзя использовать в криптографических целях или ожидать возврата значения, которое невозможно угадать.

Безопасные для криптографических целей случайные последовательности создаёт композиция класса Random\Randomizer с движком Random\Engine\Secure. В простых сценариях пользуются функциями random_int() и random_bytes() с удобным и безопасным API-интерфейсом, который поддерживается безопасным для криптографических целей CSPRNG-генератором псевдослучайных чисел операционной системы.

### Список параметров

`limiter`

  Ограничитель.

  Объект GMP, целое число (int) или строка (string), которая интерпретируется как число по той же логике как если бы строка использовалась в функции gmp_init() с автоматическим определением основания системы счисления — когда значение параметра `base` равно 0.

### Возвращаемые значения

Случайное GMP число.

### Примеры

Пример #1 Пример использования gmp_random()

    <?php
    $rand1 = gmp_random(1); // случайное число от 0 до 1 * бит на лимб
    $rand2 = gmp_random(2); // случайное число от 0 до 2 * бит на лимб

    echo gmp_strval($rand1) . "\n";
    echo gmp_strval($rand2) . "\n";
    ?>

Результат выполнения приведённого примера:

    1915834968
    8642564075890328087

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