Вам не нужно явно вызывать srand; это будет сделано неявно для вас при первом вызове rand, если вы ранее не звонили srand.
srand без параметров попытается инициализировать генератор случайных чисел в случайном состоянии. Он использует / dev / urandom и т.п., если он доступен, и в противном случае использует значение, рассчитанное по текущему времени и pid.
rand () без параметров возвращает значение с плавающей запятой от 0 (включительно) до 1 (исключая). Умножение этого на некоторое целое число дает значение с плавающей запятой от> = 0 и <это целое число. Использование этого в целочисленном контексте (например, в формате «% d») дает целое число от 0 до единицы меньше, чем ваш множитель. <code>rand(x), для x, отличного от 0, возвращает тот же диапазон случайных чисел, что и x * rand()
. Так что rand(1)
эквивалентно просто rand()
, а rand(1) * $MAXINT
могло бы быть просто rand($MAXINT)
.