Справочник по PHP - white cat
Шрифт:
Интервал:
Закладка:
bcsqrt
Получение квадратного корня числа произвольной точности.
Синтаксис:
string bcsqrt(string operand [,int scale]);
Возвращает квадратный корень аргумента operand. Параметр scale устанавливает количество цифр после десятичной отметки в результате.
bcsub
Вычитает одно число произвольной точности из другого.
Синтаксис:
string bcsub(string left_operand, right_operand [, int scale]);
Возвращает разность двух переменных, указанных в параметрах функции (left_operand - right_operand) с точностью, указанной в необязательном параметре scale.
Функции GMP
Подразделы
Функции
Введение
Функции этого вида позволяют работать с целыми числами повышенной точности определенного формата используя библиотеку GNU MP.Эта библиотека не входит в стандартный пакет PHP. Загрузить коды библиотеки и документацию по ней можно на сайте http://www.swox.com/gmp/.
Функции, приведенные в этой библиотеке, могут также работать с обычными целочисленными аргументами. В этом случае они будут автоматически преобразовываться в формат 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_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
Возвращает число Легранжа.
Синтаксис: