XXXVI. Функции GMP
Эти функции позволяют работать целыми числами произвольной точности с
использованием библиотеки GNU MP.
Эти функции были введены в PHP 4.0.4.
Примечание: в основном функции GMP принимают GMP-количество аргументов,
определённое далее как resource. Однако большая часть этих функций принимает также числовые и строковые
аргументы, которые можно конвертировать в числа. Также,
если если имеется более быстрая функция, работающая с целочисленными аргументами,
она может использоваться вместо более медленной функции, если
предоставляемые аргументы являются целыми числами. Это делается прозрачно,
так что вы можете использовать целые числа в каждой функции, ожидающей GMP-числа. См. также
функцию
gmp_init()
.
Предупреждение!
|
Если вы хотите явно специфицировать большое целое число,
специфицируйте его как строку. Если вы это не сделаете, PHP будет
интерпретировать сначала целочисленный литерал, возможно, с потерей
точности, даже перед использованием GMP.
|
Вы можете загрузить библиотеку GMP с http://www.swox.com/gmp/. Этот сайт содержит также учебник по
GMP.
Вам понадобится версия GMP 2 или новее для использования этих функций.
Некоторые функции могут потребовать использования самой последней версии библиотеки GMP.
Чтобы эти функции работали, вы обязаны скомпилировать PHP с поддержкой
GMP, используя опцию
--with-gmp.
Это расширение не определяет никаких директив конфигурации.
Это расширение не определяет никакие типы ресурсов.
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
-
GMP_ROUND_ZERO
(integer)
-
GMP_ROUND_PLUSINF
(integer)
-
GMP_ROUND_MINUSINF
(integer)
Пример 1. Функция вычисления факториала с использованием GMP
<?php
function fact ($x) {
if ($x <= 1)
return 1;
else
return gmp_mul ($x, fact ($x-1));
}
print gmp_strval (fact (1000)) . "\n";
?>
|
|
Факториал 1000 будет вычислен (довольно большое число) весьма быстро.
Математические функции можно найти найти также в разделах
Математические функции BCMath произвольной точности и Математические функции.
-
Содержание
-
gmp_abs - абсолютное значение
-
gmp_add - складывает числа
-
gmp_and - логическое AND
-
gmp_clrbit - очищает бит
-
gmp_cmp - сравнивает числа
-
gmp_com - высчитывает дополнение/complement a
-
gmp_div_q - делит числа
-
gmp_div_qr - делит числа и получает частное и остаток
-
gmp_div_r - остаток от деления чисел
-
gmp_div - делит числа
-
gmp_divexact - точное деление чисел
-
gmp_fact - факториал
-
gmp_gcd - вычисляет GCD
-
gmp_gcdext - вычисляет GCD и множители
-
gmp_hamdist - Hamming distance (математики, переводите...)
-
gmp_init - создаёт GMP-число
-
gmp_intval - конвертирует GMP-число в целое/integer
-
gmp_invert - инвертирует по modulo
-
gmp_jacobi - символ Jacobi
-
gmp_legendre - символ Legendre
-
gmp_mod - операция Modulo
-
gmp_mul - умножает числа
-
gmp_neg - отрицает число
-
gmp_or - логическое OR
-
gmp_perfect_square - проверка точности квадрата
-
gmp_popcount - счёт заполнения
-
gmp_pow - возводит число в степень
-
gmp_powm - возводит число в степень с modulo
-
gmp_prob_prime - проверяет, является ли число "probably prime"
-
gmp_random - случайное число
-
gmp_scan0 - сканирует 0
-
gmp_scan1 - сканирует 1
-
gmp_setbit - устанавливает бит
-
gmp_sign - знак числа
-
gmp_sqrt - квадратный корень
-
gmp_sqrtrm - квадратный корень с остатком
-
gmp_strval - конвертирует GMP-число в строку
-
gmp_sub - вычитает числа
-
gmp_xor - логическое XOR
|