Оглавление
    Математические функции

    Математические функции

    Функции округления

    abs

    Возвращает модуль числа.

    mixed abs(mixed $number)
    

    Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.

    $x = abs(-4);    // $x=4
    $x = abs(-7.45); // $x=7.45
    
    round

    Округление дробного числа до целого.

    double round(double $val)
    

    Округляет $val до ближайшего целого и возвращает результат.

    $foo = round(3.4); // $foo == 3.0
    $foo = round(3.5); // $foo == 4.0
    $foo = round(3.6); // $foo == 4.0
    
    $x = round(5.3);  // $x=5
    $x = round(5.4);  // $x=5
    $x = round(5.45); // $x=5
    $x = round(5.5);  // $x=6
    
    ceil

    Дополнение дробного числа до следующего целого.

    int ceil(float $number)
    

    Возвращает наименьшее целое число, не меньше $number. Разумеется, передавать в $number целое число бессмысленно.

    $x = ceil(5.0);  // $x=5
    $x = ceil(5.1);  // $x=6
    $x = ceil(5.9);  // $x=6
    
    floor

    Удаление дробной части числа.

    int floor(float $number)
    

    Возвращает максимальное целое число, не превосходящее $number.

    $x = floor(5.1);  // $x=5
    $x = floor(5.9);  // $x=5
    

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

    srand

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

    void srand(int seed)
    

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

    srand((double) microtime()*1000000);
    $random = rand();
    echo $random;
    
    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.

    Перевод в различные системы счисления

    base_convert

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

    string base_convert(string $number, int $frombase, int $tobase)
    

    Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и $tobase могут принимать значения только от 2 до 36 включительно. В строке $number цифры обозначают сами себя, а буква a соответствует 11, b -12, и т.д. до z, которая обозначает 36. Например, следующие команды выведут 11111111 (8 единичек), потому что это - не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:

    $x = base_convert("FF",16,2);       //$x = 11111111
    $x = base_convert("11111111",2,16); //$x = FF
    $x = base_convert("200",10,16);     //$x = C8
    
    bindec

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

    int bindec(string binary_string)
    

    Преобразует двоичное число, заданное в строке binary_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

    $x = bindec(11111111); // $x = 255
    $x = bindec(10101010); // $x = 170
    $x = bindec(2147483647); // $x = 1111111111111111111111111111111
    
    decbin

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

    string decbin(int $number)
    

    Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647, которое выглядит как 31 единичка в двоичной системе. Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо "bin" подставляются соответственно "oct" и "hex".

    $x = decbin(255); // $x = 11111111
    $x = decbin(2147483647); // $x = 1111111111111111111111111111111
    
    dechex

    Производит конвертацию десятичного числа в шестнадцатеричное.

    string dechex(int number)
    

    Возвращает строку, представляющую собой шестнадцатеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

    $x = dechex(2147483647); // $x = 7fffffff
    
    decoct

    Производит конвертацию десятичного числа в восьмеричное.

    string decoct(int number)
    

    Возвращает строку, представляющую собой восьмеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

    $x = dechex(2147483647); // $x = 17777777777
    
    hexdec

    Производит конвертацию шестнадцатеричного числа в десятичное.

    int hexdec(string hex_string)
    

    Преобразует шестнадцатеричное число, заданное в строке hex_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 7fffffff

    $x = hexdec(7fffffff); // $x = 2147483647
    
    octdec

    Производит конвертацию восьмеричного числа в десятичное.

    int octdec(string octal_string)
    

    Преобразует восьмеричное число, заданное в строке octal_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 17777777777

    $x = octdec(17777777777); // $x = 2147483647
    
    deg2rad

    Производит конвертацию градусов в радианы.

    double deg2rad(double number)
    

    Преобразует градусы, заданные в параметре number, в радианы.

    rad2deg

    Производит конвертацию радианов в градусы.

    double rad2deg(double number)
    

    Преобразует радианы, заданные в параметре number, в градусы.

    number_format

    Форматирование числа.

    number_format($number, $decimals, $dec_point=".", $thousands_sep=",");
    

    Эта функция форматирует число с плавающей точкой с разделением его на триады с указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно быть у числа в выходной строке. Параметр $dec_point представляет собой разделитель целой и дробной частей, а параметр $thousands_sep - разделитель триад в числе (если указать на его месте пустую строку, то триады не отделяются друг от друга).

    Минимум и максимум

    min

    Эта функция возвращает наименьшее из чисел, заданных в ее аргументах.

    mixed min(mixed $arg1 [int $arg2, ..., int $argn])
    

    Различают два способа вызова этой функции: с одним параметром или с несколькими. Если указан лишь один параметр (первый), то он обязательно должен быть массивом и возвращается минимальный элемент этого массива. В противном случае первый (и остальные) аргументы трактуются как числа с плавающей точкой, они сравниваются, и возвращается наименьшее. Тип возвращаемого значения выбирается так: если хотябы одно из чисел, переданных на вход, задано в формате с плавающей точкой, то и результат будет с плавающей точкой, в противном случае результат будет целым числом. С помощью этой функции нельзя лексографически сравнивать строки - только числа.

    $x = min(5,3,4,6,5,6,8,9); // $x = 3
    $x[0]=4;
    $x[1]=1;
    $x[2]=5;
    $x[3]=2;
    echo min($x); // выведет 1
    
    max

    Получение наибольшего аргумента.

    mixed max(mixed $arg1 [int $arg2, ..., int $argn])
    

    Функция работает аналогично min(), только ищет максимальное значение.

    $x = max(5,3,4,6,5,6,8,9); // $x = 9
    $x[0]=4;
    $x[1]=1;
    $x[2]=5;
    $x[3]=2;
    echo max($x); // выведет 5
    

    Степенные функции

    sqrt

    Возвращает квадратный корень из аргумента.

    float sqrt(float $arg)
    

    Если аргумент отрицателен, то генерируется предупреждение, но работа программы не прекращается!

    $x = sqrt(9); // $x = 3
    echo sqrt(25); // выведет 5
    echo sqrt(-25); // выведет -1.#IND
    
    log

    Возвращает натуральный логарифм аргумента.

    float log(float $arg)
    

    В случае недопустимого числа печатает предупреждение, но не завершает программу.

    $x = log(exp(2)); // $x = 2
    echo log(10);      // выведет 2.302585092994
    
    log10

    Возвращает десятичный логарифм аргумента.

    float log10(float $arg)
    

    В случае недопустимого числа печатает предупреждение, но не завершает программу.

    echo log10(100); // выведет 2
    
    exp

    Возвращает e (2,718281828) в степени $arg.

    float exp(float $arg)
    
    $x = exp(1); // $x = 2.718281828459
    
    pow

    Возведение в степень.

    float pow(float $base, float $exp)
    

    Возвращает $base в степени $exp.

    $x = pow(3,2);   // $x = 9
    $x = pow("3",2); // $x = 9
    

    Тригонометрия

    sin

    Возвращает синус аргумента.

    float sin(float $arg)
    

    Аргумент задается в радианах.

    $x = sin(M_PI_2); // $x = 1
    
    cos

    Возвращает косинус аргумента.

    float cos(float $arg)
    
    $x = cos(0); // $x = 0
    $x = cos(M_PI); // $x = -1
    
    tan

    Возвращает тангенс аргумента, заданного в радианах.

    float tan(float $arg)
    
    $x = tan(M_PI_4); // $x = 1
    
    acos

    Возвращает арккосинус аргумента.

    float acos(float $arg)
    
    $x = acos(0); // $x = pi/2
    $x = acos(1); // $x = 0
    
    asin

    Возвращает арксинус.

    float asin(float $arg)
    
    $x = asin(0); // $x = 0
    $x = asin(1); // $x = pi/2
    
    atan

    Возвращает арктангенс аргумента.

    float atan(float $arg)
    
    $x = atan(0); // $x = 0
    $x = atan(1); // $x = pi/4
    
    atan2

    Получение арктангенса двух чисел.

    float atan2(float $y, float $x)
    

    Возвращает арктангенс величины $y/$x, но с учетом той четверти, в которой лежит точка ($x,$y). Эта функция возвращает результат в радианах, принадлежащий отрезку от -? до ?.

    $x = atan2(1,1);   // $x = pi/4
    $x = atan2(-1,-1); // $x = -3*pi/4
    
    pi

    Возвращает число пи - 3,14.

    double pi()
    

    Эту функцию обязательно нужно вызывать с парой пустых скобок:

    $x = pi()*2 // $x = 31.415926535898
    
    Функции повышенной точности BCMath

    Функции повышенной точности BCMath

    Функции этого вида позволяют работать с целыми числами повышенной точности определенного формата используя библиотеку GNU MP.Эта библиотека не входит в стандартный пакет PHP. Загрузить коды библиотеки и документацию по ней можно на сайте http://www.swox.com/gmp/. Функции, приведенные в этой библиотеке, могут также работать с обычными целочисленными аргументами. В этом случае они будут автоматически преобразовываться в формат GMP. Но для увеличения производительности рекомендуется все же использовать числа формата GMP.
    gmp_init

    Создает число GMP.

    resource gmp_init(mixed number)
    

    Число GMP создается из целочисленного или строкового аргумента. В строке может быть указано число десятеричного или шестнадцатеричного формата. Если это шестнадцатеричный формат, то перед числом должен стоять префикс 0x.

    $x = gmp_init(45);
    $y = gmp_init("46");
    $z = gmp_init("0xfa4b");
    

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

    gmp_intval

    Преобразование GMP-числа в целое.

    int gmp_intval(resource gmpnumber)
    

    Эта функция конвертирует GMP-число в целое в том случае, если получаемое число не превышает своего максимально допустимого размера.

    gmp_strval

    Преобразование GMP-числа в строку.

    string gmp_strval(resource gmpnumber [, int base])
    

    Функция возвращает число gmpnumber в строковом формате в системе счисления, заданной в необязательном параметре base. По умолчанию возвращает в десятичной системе счисления). Параметр base может принимать значения от 2 до 36.

    $x = gmp_init("0xf1a5");
    echo "В десятичной : ".gmp_strval($x);
    echo "В base-36: ".gmp_strval($x,36);
    
    gmp_abs

    Вычисляет модуль GMP-числа.

    resource gmp_abs(resourse x)
    

    Возвращает абсолютное значение числа, заданного в параметре x.

    gmp_sign

    Возвращает знак числа.

    int gmp_sign(resource x)
    

    Функция gmp_sign() возвратит 1, если x - положительное число, и 0 - если отрицательное.

    gmp_neg

    Возвращает отрицательное значение числа.

    recource gmp_neg(resource x);
    

    Возвратит -x.

    Арифметика

    gmp_add

    Сложение двух чисел.

    recource gmp_add(resource x, recource y)
    

    Функция возвратит GMP-число, равное сумме аргументов x и y.

    gmp_sub

    Вычитание двух чисел.

    recource gmp_sub(resource x, recource y)
    

    Функция возвратит GMP-число, равное разности аргументов x и y.

    gmp_mul

    Умножение двух чисел.

    recource gmp_mul(resource x, recource y)
    

    Функция возвратит GMP-число, равное произведению аргументов x и y.

    gmp_div

    Деление двух чисел.

    recource gmp_div(resource x, recource y [, int round])
    

    Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом: Эта функция - синоним gmp_div_q().

    gmp_div_q

    Деление двух чисел.

    recource gmp_div_q(resource x, recource y [, int round])
    

    Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом: У этой функции есть синоним - gmp_div().

    gmp_div_r

    Возвращает остаток от целочисленного деления.

    recource gmp_div_r(resource x, recource y [, int round])
    

    Функция возвращает остаток от деления x на y. Знак будет наследован от аргумента x.

    gmp_div_qr

    Производит деление с остатком.

    array gmp_div_qr(resource x, recource y [, int round])
    

    Данная функция комбинирует в себе действие двух предыдущих функций gmp_div_q() и gmp_div_r(). Она возвращает массив, состоящий из двух элементов:

    $x=gmp_init("0xf3c3b5");
    $result=gmp_div_qr($x, "0xb1");
    echo "Целое: ".gmp[strval($result[0]);
    echo "Остаток: ".gmp[strval($result[1]);
    
    gmp_mod

    Возвращает модуль остатка деления.

    resource gmp_mod(resource x, recource y)
    

    Данная функция эквивалентна gmp_div_r(), за исключением того, что она возвращает абсолютное значение.

    gmp_divexact

    Производит безостаточное деление.

    resource gmp_divexact(resource x, recource y)
    

    Данная функция использует алгоритм "точного" деления. Результат будет достоверным, только если x будет нацело делим y.

    gmp_cmp

    Производит сравнение двух чисел.

    int gmp_cmp(resource x, recource y)
    

    Функция возвратит положительное значение, если x y; ноль, елси x = y; отрицательное значени, если x < y.

    Математика

    gmp_fact

    Вычисляет факториал.

    resource gmp_fact(resourse x)
    

    Возвращает факториал числа, заданного в параметре x.

    gmp_sqrt

    Вычисляет квадратный корень.

    resource gmp_sqrt(resourse x)
    

    Возвращает квадратный корень числа, заданного в параметре x.

    gmp_sqrtrm

    Вычисляет квадратный корень с остатком.

    array gmp_sqrtrm(resourse x)
    

    Данная функция возвращает массив, в котором элемент с индексом [0] - это квадратный корень аргумента, элемент с индексом [1] - разность между аргументом и элементом [0] в квадрате.

    gmp_perfect_square

    Определяет, является ли число полным квадратом.

    bool gmp_perfect_square(resourse x)
    

    Функция gmp_perfect_square() возвратит true, если x является квадратом целого числа. В противном случае вернет false.

    gmp_pow

    Возведение в степень.

    resource gmp_pow(resourse x, int y)
    

    Эта функция возвращает результат, равный возведения аргумента x в степень y, при условии, что y не отрицательный.

    echo gmp_pow(2,3); // Выведет 8
    echo gmp_pow(0,0); // Выведет 1
    
    gmp_powm

    Возводит число в степень и производит деление по модулю

    gmp_powm ( GMP|int|string $num , GMP|int|string $exponent , GMP|int|string $modulus )
    
    gmp_prob_prime

    Проверка "вероятно" простого числа.

    int gmp_prob_prime(resourse x [, int reps])
    

    Эта функция возвратит 0, в случае если x сложное число, т.е. имеющее более двух целых делителей. Возвратит 1, если x, возможно, простое число. Если возвращает 2, то тогда x - наверняка простое число. Аргумент reps определяет качество проверки. Чем большее это число, тем точнее результат. Может принимать значения от 5 до 10 (по умолчанию). Эта функция использует алгоритм вероятностного теста Миллера-Рабина.

    gmp_gcd

    Находит наибольший общий делитель.

    resource gmp_gcd(resourse x, resource y)
    

    Всегда возвращает положительный результат.

    gmp_gcdext

    Нахождение наибольшего общего делителя со множителями.

    array gmp_gcdext(resourse x, resource y)
    

    Функция gmp_gcdext() возвращает массив со значениями g,s,t, такими, что x*s+y*t=g=НОД(x,y), где НОД - наибольший общий делитель.

    gmp_invert

    Производит инверсию по модулю.

    resource gmp_invert(resourse x, resource y)
    

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

    gmp_legendre

    Возвращает число Легранжа.

    int gmp_legendre(resourse x, resource p)
    

    Функция возвращает число Легранжа. p должен быть четным положительным.

    gmp_jacobi

    Возвращает число Якоби.

    int gmp_jacobi(resourse x, resource p)
    

    Функция возвращает число Якоби. p должен быть четным положительным.

    gmp_random

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

    resource gmp_random(int limited)
    

    limited задает длину генерируемого числа. В случае, если значение limited отрицательно, генерируется отрицательное число.

    gmp_popcount

    Получение популяции.

    int gmp_popcount(resource x)
    

    Функция возвращает числитель популяции.

    gmp_hamdist

    Вычисление дистанции.

    int gmp_hamdist(resource x, resource y)
    

    Функция возвращает дистанцию между числами x и y. Аргументы x и y должны быть неотрицательными.

    Бинарные операции

    gmp_and

    Логическое И (AND).

    resource gmp_and(resource x, resource y)
    

    resource gmp_and(resource x, resource y)

    gmp_or

    Логическое ИЛИ (OR).

    resource gmp_or(resource x, resource y)
    
    gmp_xor

    Логическое исключающее-ИЛИ (XOR).

    resource gmp_xor(resource x, resource y)
    
    gmp_setbin

    Установка бита.

    resource gmp_setbin(resource &x, int index [, bool set_clear])
    

    Устанавливает бит в позиции index в числе x. Аргумент set_clear указывает, в какое значение устанавливать бит: 0 или 1 (по умолчанию).

    gmp_clrbit

    Производит сброс бита.

    resource gmp_clrbit(resource &x, int index)
    

    Устанавливает бит в позиции index в числе x в значение 0.

    gmp_scan0

    Производит поиск бита 0.

    int gmp_scan0(resource x, int start)
    

    Функция gmp_scan0() ищет в числе x бит 0, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.

    gmp_scan1

    Производит поиск бита 1.

    int gmp_scan1(resource x, int start)
    

    Функция gmp_scan0() ищет в числе x бит 1, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.

    Математические функции

    Математические функции

    Функции округления

    abs

    Возвращает модуль числа.

    mixed abs(mixed $number)
    

    Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.

    $x = abs(-4);    // $x=4
    $x = abs(-7.45); // $x=7.45
    
    round

    Округление дробного числа до целого.

    double round(double $val)
    

    Округляет $val до ближайшего целого и возвращает результат.

    $foo = round(3.4); // $foo == 3.0
    $foo = round(3.5); // $foo == 4.0
    $foo = round(3.6); // $foo == 4.0
    
    $x = round(5.3);  // $x=5
    $x = round(5.4);  // $x=5
    $x = round(5.45); // $x=5
    $x = round(5.5);  // $x=6
    
    ceil

    Дополнение дробного числа до следующего целого.

    int ceil(float $number)
    

    Возвращает наименьшее целое число, не меньше $number. Разумеется, передавать в $number целое число бессмысленно.

    $x = ceil(5.0);  // $x=5
    $x = ceil(5.1);  // $x=6
    $x = ceil(5.9);  // $x=6
    
    floor

    Удаление дробной части числа.

    int floor(float $number)
    

    Возвращает максимальное целое число, не превосходящее $number.

    $x = floor(5.1);  // $x=5
    $x = floor(5.9);  // $x=5
    

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

    srand

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

    void srand(int seed)
    

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

    srand((double) microtime()*1000000);
    $random = rand();
    echo $random;
    
    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.

    Перевод в различные системы счисления

    base_convert

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

    string base_convert(string $number, int $frombase, int $tobase)
    

    Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и $tobase могут принимать значения только от 2 до 36 включительно. В строке $number цифры обозначают сами себя, а буква a соответствует 11, b -12, и т.д. до z, которая обозначает 36. Например, следующие команды выведут 11111111 (8 единичек), потому что это - не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:

    $x = base_convert("FF",16,2);       //$x = 11111111
    $x = base_convert("11111111",2,16); //$x = FF
    $x = base_convert("200",10,16);     //$x = C8
    
    bindec

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

    int bindec(string binary_string)
    

    Преобразует двоичное число, заданное в строке binary_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

    $x = bindec(11111111); // $x = 255
    $x = bindec(10101010); // $x = 170
    $x = bindec(2147483647); // $x = 1111111111111111111111111111111
    
    decbin

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

    string decbin(int $number)
    

    Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647, которое выглядит как 31 единичка в двоичной системе. Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо "bin" подставляются соответственно "oct" и "hex".

    $x = decbin(255); // $x = 11111111
    $x = decbin(2147483647); // $x = 1111111111111111111111111111111
    
    dechex

    Производит конвертацию десятичного числа в шестнадцатеричное.

    string dechex(int number)
    

    Возвращает строку, представляющую собой шестнадцатеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

    $x = dechex(2147483647); // $x = 7fffffff
    
    decoct

    Производит конвертацию десятичного числа в восьмеричное.

    string decoct(int number)
    

    Возвращает строку, представляющую собой восьмеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

    $x = dechex(2147483647); // $x = 17777777777
    
    hexdec

    Производит конвертацию шестнадцатеричного числа в десятичное.

    int hexdec(string hex_string)
    

    Преобразует шестнадцатеричное число, заданное в строке hex_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 7fffffff

    $x = hexdec(7fffffff); // $x = 2147483647
    
    octdec

    Производит конвертацию восьмеричного числа в десятичное.

    int octdec(string octal_string)
    

    Преобразует восьмеричное число, заданное в строке octal_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 17777777777

    $x = octdec(17777777777); // $x = 2147483647
    
    deg2rad

    Производит конвертацию градусов в радианы.

    double deg2rad(double number)
    

    Преобразует градусы, заданные в параметре number, в радианы.

    rad2deg

    Производит конвертацию радианов в градусы.

    double rad2deg(double number)
    

    Преобразует радианы, заданные в параметре number, в градусы.

    number_format

    Форматирование числа.

    number_format($number, $decimals, $dec_point=".", $thousands_sep=",");
    

    Эта функция форматирует число с плавающей точкой с разделением его на триады с указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно быть у числа в выходной строке. Параметр $dec_point представляет собой разделитель целой и дробной частей, а параметр $thousands_sep - разделитель триад в числе (если указать на его месте пустую строку, то триады не отделяются друг от друга).

    Минимум и максимум

    min

    Эта функция возвращает наименьшее из чисел, заданных в ее аргументах.

    mixed min(mixed $arg1 [int $arg2, ..., int $argn])
    

    Различают два способа вызова этой функции: с одним параметром или с несколькими. Если указан лишь один параметр (первый), то он обязательно должен быть массивом и возвращается минимальный элемент этого массива. В противном случае первый (и остальные) аргументы трактуются как числа с плавающей точкой, они сравниваются, и возвращается наименьшее. Тип возвращаемого значения выбирается так: если хотябы одно из чисел, переданных на вход, задано в формате с плавающей точкой, то и результат будет с плавающей точкой, в противном случае результат будет целым числом. С помощью этой функции нельзя лексографически сравнивать строки - только числа.

    $x = min(5,3,4,6,5,6,8,9); // $x = 3
    $x[0]=4;
    $x[1]=1;
    $x[2]=5;
    $x[3]=2;
    echo min($x); // выведет 1
    
    max

    Получение наибольшего аргумента.

    mixed max(mixed $arg1 [int $arg2, ..., int $argn])
    

    Функция работает аналогично min(), только ищет максимальное значение.

    $x = max(5,3,4,6,5,6,8,9); // $x = 9
    $x[0]=4;
    $x[1]=1;
    $x[2]=5;
    $x[3]=2;
    echo max($x); // выведет 5
    

    Степенные функции

    sqrt

    Возвращает квадратный корень из аргумента.

    float sqrt(float $arg)
    

    Если аргумент отрицателен, то генерируется предупреждение, но работа программы не прекращается!

    $x = sqrt(9); // $x = 3
    echo sqrt(25); // выведет 5
    echo sqrt(-25); // выведет -1.#IND
    
    log

    Возвращает натуральный логарифм аргумента.

    float log(float $arg)
    

    В случае недопустимого числа печатает предупреждение, но не завершает программу.

    $x = log(exp(2)); // $x = 2
    echo log(10);      // выведет 2.302585092994
    
    log10

    Возвращает десятичный логарифм аргумента.

    float log10(float $arg)
    

    В случае недопустимого числа печатает предупреждение, но не завершает программу.

    echo log10(100); // выведет 2
    
    exp

    Возвращает e (2,718281828) в степени $arg.

    float exp(float $arg)
    
    $x = exp(1); // $x = 2.718281828459
    
    pow

    Возведение в степень.

    float pow(float $base, float $exp)
    

    Возвращает $base в степени $exp.

    $x = pow(3,2);   // $x = 9
    $x = pow("3",2); // $x = 9
    

    Тригонометрия

    sin

    Возвращает синус аргумента.

    float sin(float $arg)
    

    Аргумент задается в радианах.

    $x = sin(M_PI_2); // $x = 1
    
    cos

    Возвращает косинус аргумента.

    float cos(float $arg)
    
    $x = cos(0); // $x = 0
    $x = cos(M_PI); // $x = -1
    
    tan

    Возвращает тангенс аргумента, заданного в радианах.

    float tan(float $arg)
    
    $x = tan(M_PI_4); // $x = 1
    
    acos

    Возвращает арккосинус аргумента.

    float acos(float $arg)
    
    $x = acos(0); // $x = pi/2
    $x = acos(1); // $x = 0
    
    asin

    Возвращает арксинус.

    float asin(float $arg)
    
    $x = asin(0); // $x = 0
    $x = asin(1); // $x = pi/2
    
    atan

    Возвращает арктангенс аргумента.

    float atan(float $arg)
    
    $x = atan(0); // $x = 0
    $x = atan(1); // $x = pi/4
    
    atan2

    Получение арктангенса двух чисел.

    float atan2(float $y, float $x)
    

    Возвращает арктангенс величины $y/$x, но с учетом той четверти, в которой лежит точка ($x,$y). Эта функция возвращает результат в радианах, принадлежащий отрезку от -? до ?.

    $x = atan2(1,1);   // $x = pi/4
    $x = atan2(-1,-1); // $x = -3*pi/4
    
    pi

    Возвращает число пи - 3,14.

    double pi()
    

    Эту функцию обязательно нужно вызывать с парой пустых скобок:

    $x = pi()*2 // $x = 31.415926535898
    
    Функции повышенной точности BCMath

    Функции повышенной точности BCMath

    Функции этого вида позволяют работать с целыми числами повышенной точности определенного формата используя библиотеку GNU MP.Эта библиотека не входит в стандартный пакет PHP. Загрузить коды библиотеки и документацию по ней можно на сайте http://www.swox.com/gmp/. Функции, приведенные в этой библиотеке, могут также работать с обычными целочисленными аргументами. В этом случае они будут автоматически преобразовываться в формат GMP. Но для увеличения производительности рекомендуется все же использовать числа формата GMP.
    gmp_init

    Создает число GMP.

    resource gmp_init(mixed number)
    

    Число GMP создается из целочисленного или строкового аргумента. В строке может быть указано число десятеричного или шестнадцатеричного формата. Если это шестнадцатеричный формат, то перед числом должен стоять префикс 0x.

    $x = gmp_init(45);
    $y = gmp_init("46");
    $z = gmp_init("0xfa4b");
    

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

    gmp_intval

    Преобразование GMP-числа в целое.

    int gmp_intval(resource gmpnumber)
    

    Эта функция конвертирует GMP-число в целое в том случае, если получаемое число не превышает своего максимально допустимого размера.

    gmp_strval

    Преобразование GMP-числа в строку.

    string gmp_strval(resource gmpnumber [, int base])
    

    Функция возвращает число gmpnumber в строковом формате в системе счисления, заданной в необязательном параметре base. По умолчанию возвращает в десятичной системе счисления). Параметр base может принимать значения от 2 до 36.

    $x = gmp_init("0xf1a5");
    echo "В десятичной : ".gmp_strval($x);
    echo "В base-36: ".gmp_strval($x,36);
    
    gmp_abs

    Вычисляет модуль GMP-числа.

    resource gmp_abs(resourse x)
    

    Возвращает абсолютное значение числа, заданного в параметре x.

    gmp_sign

    Возвращает знак числа.

    int gmp_sign(resource x)
    

    Функция gmp_sign() возвратит 1, если x - положительное число, и 0 - если отрицательное.

    gmp_neg

    Возвращает отрицательное значение числа.

    recource gmp_neg(resource x);
    

    Возвратит -x.

    Арифметика

    gmp_add

    Сложение двух чисел.

    recource gmp_add(resource x, recource y)
    

    Функция возвратит GMP-число, равное сумме аргументов x и y.

    gmp_sub

    Вычитание двух чисел.

    recource gmp_sub(resource x, recource y)
    

    Функция возвратит GMP-число, равное разности аргументов x и y.

    gmp_mul

    Умножение двух чисел.

    recource gmp_mul(resource x, recource y)
    

    Функция возвратит GMP-число, равное произведению аргументов x и y.

    gmp_div

    Деление двух чисел.

    recource gmp_div(resource x, recource y [, int round])
    

    Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом: Эта функция - синоним gmp_div_q().

    gmp_div_q

    Деление двух чисел.

    recource gmp_div_q(resource x, recource y [, int round])
    

    Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом: У этой функции есть синоним - gmp_div().

    gmp_div_r

    Возвращает остаток от целочисленного деления.

    recource gmp_div_r(resource x, recource y [, int round])
    

    Функция возвращает остаток от деления x на y. Знак будет наследован от аргумента x.

    gmp_div_qr

    Производит деление с остатком.

    array gmp_div_qr(resource x, recource y [, int round])
    

    Данная функция комбинирует в себе действие двух предыдущих функций gmp_div_q() и gmp_div_r(). Она возвращает массив, состоящий из двух элементов:

    $x=gmp_init("0xf3c3b5");
    $result=gmp_div_qr($x, "0xb1");
    echo "Целое: ".gmp[strval($result[0]);
    echo "Остаток: ".gmp[strval($result[1]);
    
    gmp_mod

    Возвращает модуль остатка деления.

    resource gmp_mod(resource x, recource y)
    

    Данная функция эквивалентна gmp_div_r(), за исключением того, что она возвращает абсолютное значение.

    gmp_divexact

    Производит безостаточное деление.

    resource gmp_divexact(resource x, recource y)
    

    Данная функция использует алгоритм "точного" деления. Результат будет достоверным, только если x будет нацело делим y.

    gmp_cmp

    Производит сравнение двух чисел.

    int gmp_cmp(resource x, recource y)
    

    Функция возвратит положительное значение, если x y; ноль, елси x = y; отрицательное значени, если x < y.

    Математика

    gmp_fact

    Вычисляет факториал.

    resource gmp_fact(resourse x)
    

    Возвращает факториал числа, заданного в параметре x.

    gmp_sqrt

    Вычисляет квадратный корень.

    resource gmp_sqrt(resourse x)
    

    Возвращает квадратный корень числа, заданного в параметре x.

    gmp_sqrtrm

    Вычисляет квадратный корень с остатком.

    array gmp_sqrtrm(resourse x)
    

    Данная функция возвращает массив, в котором элемент с индексом [0] - это квадратный корень аргумента, элемент с индексом [1] - разность между аргументом и элементом [0] в квадрате.

    gmp_perfect_square

    Определяет, является ли число полным квадратом.

    bool gmp_perfect_square(resourse x)
    

    Функция gmp_perfect_square() возвратит true, если x является квадратом целого числа. В противном случае вернет false.

    gmp_pow

    Возведение в степень.

    resource gmp_pow(resourse x, int y)
    

    Эта функция возвращает результат, равный возведения аргумента x в степень y, при условии, что y не отрицательный.

    echo gmp_pow(2,3); // Выведет 8
    echo gmp_pow(0,0); // Выведет 1
    
    gmp_powm

    Возводит число в степень и производит деление по модулю

    gmp_powm ( GMP|int|string $num , GMP|int|string $exponent , GMP|int|string $modulus )
    
    gmp_prob_prime

    Проверка "вероятно" простого числа.

    int gmp_prob_prime(resourse x [, int reps])
    

    Эта функция возвратит 0, в случае если x сложное число, т.е. имеющее более двух целых делителей. Возвратит 1, если x, возможно, простое число. Если возвращает 2, то тогда x - наверняка простое число. Аргумент reps определяет качество проверки. Чем большее это число, тем точнее результат. Может принимать значения от 5 до 10 (по умолчанию). Эта функция использует алгоритм вероятностного теста Миллера-Рабина.

    gmp_gcd

    Находит наибольший общий делитель.

    resource gmp_gcd(resourse x, resource y)
    

    Всегда возвращает положительный результат.

    gmp_gcdext

    Нахождение наибольшего общего делителя со множителями.

    array gmp_gcdext(resourse x, resource y)
    

    Функция gmp_gcdext() возвращает массив со значениями g,s,t, такими, что x*s+y*t=g=НОД(x,y), где НОД - наибольший общий делитель.

    gmp_invert

    Производит инверсию по модулю.

    resource gmp_invert(resourse x, resource y)
    

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

    gmp_legendre

    Возвращает число Легранжа.

    int gmp_legendre(resourse x, resource p)
    

    Функция возвращает число Легранжа. p должен быть четным положительным.

    gmp_jacobi

    Возвращает число Якоби.

    int gmp_jacobi(resourse x, resource p)
    

    Функция возвращает число Якоби. p должен быть четным положительным.

    gmp_random

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

    resource gmp_random(int limited)
    

    limited задает длину генерируемого числа. В случае, если значение limited отрицательно, генерируется отрицательное число.

    gmp_popcount

    Получение популяции.

    int gmp_popcount(resource x)
    

    Функция возвращает числитель популяции.

    gmp_hamdist

    Вычисление дистанции.

    int gmp_hamdist(resource x, resource y)
    

    Функция возвращает дистанцию между числами x и y. Аргументы x и y должны быть неотрицательными.

    Бинарные операции

    gmp_and

    Логическое И (AND).

    resource gmp_and(resource x, resource y)
    

    resource gmp_and(resource x, resource y)

    gmp_or

    Логическое ИЛИ (OR).

    resource gmp_or(resource x, resource y)
    
    gmp_xor

    Логическое исключающее-ИЛИ (XOR).

    resource gmp_xor(resource x, resource y)
    
    gmp_setbin

    Установка бита.

    resource gmp_setbin(resource &x, int index [, bool set_clear])
    

    Устанавливает бит в позиции index в числе x. Аргумент set_clear указывает, в какое значение устанавливать бит: 0 или 1 (по умолчанию).

    gmp_clrbit

    Производит сброс бита.

    resource gmp_clrbit(resource &x, int index)
    

    Устанавливает бит в позиции index в числе x в значение 0.

    gmp_scan0

    Производит поиск бита 0.

    int gmp_scan0(resource x, int start)
    

    Функция gmp_scan0() ищет в числе x бит 0, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.

    gmp_scan1

    Производит поиск бита 1.

    int gmp_scan1(resource x, int start)
    

    Функция gmp_scan0() ищет в числе x бит 1, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.