Справочник по PHP


              

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


srand

Производит инициализацию генератора случайных чисел.

Синтаксис :

void srand(int seed)

Инициализирует генератор случайных чисел занчением seed.

srand((double) microtime()*1000000);$random = rand();echo $random;

Вот что получиться:

5645

getrandmax

Возвращает максимально возможное случайное число.

Синтаксис :

int getrandmax()

Эта функция возвращает максимальное значение, которое можно получить при помощи функции генерации случайных чисел rand().

Обычно это 32767

rand

Производит генерацию случайного числа.

Синтаксис :

int rand([int max [, int min]])

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

Если параметры min и max отсутствуют, возвращается число, лежащее в пределах от 0 до RAND_MAX.

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

mt_rand

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

Синтаксис :

int mt_rand(int $min=0, int $max=RAND_MAX)

Если вы хотите генерировать числа не от 0 до RAND_MAX (эта константа задает максимально допустимое случайное число, и ее можно получить при помощи вызова mt_getrandmax()), задайте соответствующий интервал в параметрах $min

и $max. Не забудьте только перед первым вызовом этой функции запустить mt_srand().

mt_srand(time()+(double)microtime()*1000000);$x = mt_rand(1,100); // $x - значение от 1 до 100

mt_srand

Настраивает MT-генератор случайных чисел на новую последовательность.

Синтаксис :

void mt_srand(int seed)

Дело в том, что хотя числа, генерируемые mt_rand(), достаточно равновероятны, но у них есть один нелостаток: последовательность сгенерированных чисел будет одинакова если сценарий вызывать несколько раз подряд. Функция mt_srand()

как раз решает данную проблему: она выбирает новую последовательность на основе параметра $seed, причем практически непредсказуемым образом.

mt_srand(time()+(double)microtime()*1000000);for($i=0;$i<=10;$i++) {  $x = mt_rand(1,10);};



Содержание  Назад  Вперед