PHP функция rand(min, max) — генератор случайных чисел

Описание:

int rand ( void )int rand ( int $min , int $max )

При вызове функции без параметров min и max выводится случайное целое число в диапазоне от 0 до getrandmax(). Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите функцию rand(5, 15).

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

min — Наименьшее значение, которое может быть возвращено (по умолчанию: 0).

max — Наибольшее значение, которое может быть возвращено (по умолчанию: getrandmax()).

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

Псевдослучайное значение в диапазоне от min (или 0) до max (или getrandmax()).

Примеры:

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

echo rand() . "\n"; echo rand() . "\n"; echo rand(5, 15);

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

7771 22264 11

Примечания:

Диапазон min и max не должен выходить за границы getrandmax(). То есть (max — min) <= getrandmax(). В противном случае, rand() может возвращать менее качественные случайные числа.

18.02.2015

Приветствую вас дорогие читатели!

rand — Генерирует случайное число

В этом уроке я покажу, как можно создать генератор случайных чисел для своего сайта!

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

Генераторы случайных чисел очень популярны среди организаторов конкурсов в контакте (о конкурсах можно почитать в статье о раскрутке группы).

Например, для проведения конкурса нужно определить случайного победителя – для этого вам нужно будет идти на чужой сайт, который не всегда бывает доступен и генерировать случайное число (числа), теперь же, вы можете генерировать их на своем сайте на реальном, либо на локальном сервере.

Также, в нашем генераторе можно будет задать количество случайных чисел.

Сведем все задачи к списку:

  • Возможность указать диапазон
  • Возможность выбора способа генерации – числа без повторов или с повторами
  • Возможность указать количество чисел

Следует соблюсти следующие условия, при не выполнении которых, будет выведена ошибка:

  • Разница между минимальным и максимальным значением должна быть больше 0
  • Максимальное значение должно быть больше минимального

 

Давайте рассмотрим простенькую HTML верстку:

<form action="" method="POST"> <p>Задайте диапазон, введя числа, которые больше 0 и меньше 999999</p> <p>От:<br><input type="text" name="min"></p> <p>До:<br><input type="text" name="max"></p> <p>Сколько:<br><input type="text" name="count"></p> <p>Без повторов:<br><input type="checkbox" name="replay"></p> <p><input type="submit" name="generate" value="Сгенерировать"></p> </form>

 

PHP код:

<? //Проверка на число function check_on_number($number){ $number = trim($number); if( $number < 0 OR $number > 999999 ) return 1; if ( preg_match("|^[\d]+$|", $number) ) return $number; else return 1; } //Генерируем числа if( isset($_POST[‘generate’]) ){ $min = check_on_number(intval($_GET[‘min’])); $max = check_on_number(intval($_GET[‘max’])); $count = check_on_number(intval($_GET[‘count’])); if( $_POST[‘replay’] == ‘on’ ) $replay = true; else $callback = false; if( $min >= $max ) echo ‘Ошибка! Проверьте введенные данные’; else{ $result_array = array(); //Массив со случайными числами $end = 0; //Флаг окончания выборки if( $replay ){ //Если стоит галочка исключения повторов while( $end == 0 ){ $random = rand($min, $max); //Случайное число от min до max if ( !in_array($random, $result_array) ) $result_array[] = $random; if( count($result_array) == $count ) $end = 1; } }else{ //Если с повторами for ($i = 1; $i <= $count; $i++) { $result_array[] = rand($min, $max); } } //Выводим числа foreach( $result_array AS $item ){ echo $item.'<br>’; } } } ?>

 

Если мы поставим галочку, то будем создавать новые числа до тех пор, пока не наберется нужно количество не повторяющихся чисел.

Если галочку не ставить, то будут сгенерированы любые числа нужного количества – разумеется, в заданном диапазоне.

От входных данных (строк) мы сначала берем целое значение функцией “intval”, а после проверяем это значение на число и вхождение в заданный диапазон с помощью заранее написанной функции- “check_on_number” – вводимое число должно быть большее 0 и меньше 999999, об этом мы предупредили пользователя на html форме.

После всех операций просто выводим массив с результатом.

Вот, в принципе, и всё на сегодня, желаю вам удачи, пока!

Если вам нужна помощь в создании какого-либо функционала, сайта, сервиса, тестов или калькуляторов, то готов помочь, подробнее на странице услуг.

Описание

intrand ( void )

intrand ( int , int )

При вызове без параметров и , возвращает псевдослучайное целое в диапазоне от 0 до getrandmax(). Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand(5, 15).

Замечание: На некоторых платформах (таких как Windows) getrandmax() всего лишь 32767. Чтобы расширить диапазон, используйте параметры и , или обратитесь к функции mt_rand().

Генерация случайных чисел — PHP

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

Наименьшее значение, которое может быть возвращено (по умолчанию: 0)

Наибольшее значение, которое может быть возвращено (по умолчанию: getrandmax())

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

Псевдослучайное значение в диапазоне от (или 0) до (или getrandmax()).

Примеры

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

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

Примечания

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

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функции openssl_random_pseudo_bytes() вместо данной.

Вернуться к: Математические функции

Описание

int rand ( [int min, int max] )

При вызове без параметров и , возвращает псевдослучайное целое в диапазоне от 0 до .

Получение случайных элементов с помощью PHP

Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите .

Замечание: На некоторых платформах (таких как Windows) всего лишь 32768. Чтобы расширить диапазон, используйте параметры и , или обратитесь к функции mt_rand().

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

Замечание: В версиях до 3.0.7 определяло диапазон генерирования. Например, чтобы получить число от 5 до 15, нужно было вызвать .

См. также: srand(), getrandmax() и mt_rand().

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *