Функции GMP
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.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
Примеры
Пример 1. Функция вычисления факториала с использованием GMP
|
Факториал 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