В PHP, как вычислить случайное число?


Как вычислить случайное число между 1 и 2000 с помощью PHP, чтобы сделать розыгрыш?

function random() {
  // codigo
}
Author: Maniero, 2014-02-15

4 answers

Используйте функцию mt_rand

$numero = mt_rand(1, 2000);
echo $numero;

Узнайте больше об этой функции в этой ссылке

 13
Author: , 2014-02-15 01:23:35

Функции mt_rand() и rand() генерируют чисел псевдослучайных, сгенерированные числа, эти функции являются предсказуемыми.

В Качестве альтернативы вы можете использовать функцию openssl_random_pseudo_bytes() (Английский):

Generates a string of pseudo-random bytes, with the number of bytes определить наличие by the length parameter.

Перевод:

Создает последовательность псевдо-случайных байтов, с число байт определяется с помощью параметра length.

Например

<?php
function random($min, $max) {
    $range = $min - ($max + 1);
    if($range === 0) {
        return $min;
    }
    $len = (int)(log(abs($range), 2) / 8) + 1;
    $num = hexdec(bin2hex(openssl_random_pseudo_bytes($len)));
    return ($min + ($num % $range));
}
 8
Author: Wynn, 2020-06-11 14:45:34

, лучший вариант, в PHP 7 (или выше), использовать random_int:

random_int($menor_numero , $maior_numero);

И $menor_numero и $maior_numero включают в себя сами, поэтому использовать:

random_int(0 , 1);

Выдаст число 1, 0. В вашем случае, используйте random_int(1, 2000), уже который хочет что-то между 1 (том 1) и 2000 (в том числе 2000).


Предельный минимальный и максимальный определяется константой: PHP_INT_MIN и PHP_INT_MAX, который зависит от платформы.


random_int это "криптографически безопасный", в отличие от mt_rand rand.

 2
Author: Inkeliz, 2020-12-03 16:42:36

, Можно использовать функцию rand() что за defenição генерирует случайное число.

Синтаксис

rand($MenorNumeroDesejado, $MaiorNumeroDesejado)
 0
Author: user6908, 2014-03-24 19:59:00