Учебник РНР (перевод Alexandr Pyramidin) Размещено на PHPClub.Net
Назад Вперёд

XXXVI. Функции GMP

Введение

Эти функции позволяют работать целыми числами произвольной точности с использованием библиотеки GNU MP.

Эти функции были введены в PHP 4.0.4.

Примечание: Большей частью функций GMP принимают GMP-количество аргументов, определённое далее как resource. Однако большая часть этих функций принимает также числовые и строковые аргументы, которые можно можно конвертировать в числа. Также, если если имеется более быстрая функция, работающая с целочисленными аргументами, она может использоваться вместо более медленной функции, если предоставляемые аргументы являются целыми числами. Это делается прозрачно, так что вы можете использовать целые числа в каждой функции, ожидающей GMP-числа. См. также функцию gmp_init().

Предупреждение!

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

Требования

Вы можете загрузить библиотеку GMP с https://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

НазадОглавление Вперёд
textdomainВверх gmp_abs