Математические функции : Случайные числа
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);
};
В этом случае последовательность устанавливается на основе времени
завуска сценария (в секундах), поэтому она достаточно непредсказуема.
Для еще более надежного результата рекомендуется приплюсовать сюда еще
микросекунды (что и было сделано), а также идентификатор процесса,
вызывавшего сценарий.
mt_getrandmax
Возвращает максимальное MT-случайное число.
Синтаксис :
int mt_getrandmax()
Возвращает максимальное число, которое может быть сгенерированно
функцией mt_rand() - иными словами, константу RAND_MAX
$max = mt_getrandmax();
// $max = 2147483647
lcg_value
функция генерирует случайное дробное число.
Синтаксис :
double lcg_value()
Эта функция возвращает псевдослучайное дробное число в диапазоне от 0 до
1.