Funciones GMP
Introducción
Estas funciones permiten trabajar con números enteros de cualquier longitud arbitraria empleando la librerà GNUMP.
Estas funciones se añadieron en la versión de PHP 4.0.4.
Note: La mayorÃa de funciones GMP aceptan como argumentos números GMP, definidos como resource más adelante. Sin embargo, la mayorÃa de estas funciones también aceptan argumentos de tipo numérico o cadenas de texto, ya que se pueden convertir fácilmente. Además, si existe una función más rápida que pueda operar con enteros, se empleará esa función en lugar de la otra función más lenta. Este proceso se realiza de forma automática y transparente, por lo que a modo de resumen se puede decir que se pueden emplear números de tipo entero en todas aquellas funciones cuyos parámetros se han definido como números GMP. Vea también la documentación de la función gmp_init().
Si se quiere indicar de forma explÃcita un número entero muy grande, se recomienda hacerlo en forma de cadena. De otra forma, PHP lo interpreta como un entero y podrÃa producirse una pérdida de precisión antes de comenzar a utilizar las funciones GMP.
Note: Esta extensión está disponible en sistemas Windows desde la versión de PHP 5.1.0.
Requisitos
La librerÃa GMP de puede descargar desde la dirección » https://www.swox.com/gmp/. Además, en ese sitio web también está disponible el manual de GMP.
Para poder utilizar estas funciones se requiere al menos la versión 2 de GMP. Algunas funciones pueden requerir además alguna versión más reciente.
Instalación
Para poder utilizar estas funciones, se debe compilar PHP con soporte de GMP mediante la opción --with-gmp.
Configuración en tiempo de ejecución
Esta extensión no tiene directivas de configuración en php.ini.
Tipos de recursos
Esta extensión no tiene ningún tipo de recurso definido.
Constantes predefinidas
Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.
Ejemplos
Example#1 Cálculo del factorial usando GMP
<?php
function fact($x)
{
$factorial = 1;
for ($i=2; $i < $x; $i++) {
$factorial = gmp_mul($factorial, $i);
}
return $factorial;
}
echo gmp_strval(fact(1000)) . "\n";
?>
En el ejemplo se calcula el factorial de número 1000 (un número bastante grande para calcular su factorial) de forma bastante rápida.
Ver también
Se pueden encontrar muchas otras funciones matemáticas en las secciones Funciones matemáticas de precisión arbitraria BCMath y Funciones Matemáticas.
Table of Contents
- gmp_abs — Valor absoluto
- gmp_add — Suma números
- gmp_and — Realiza una operación de AND lógico
- gmp_clrbit — Borra un bit
- gmp_cmp — Compara números
- gmp_com — Calcula el complementario
- gmp_div_q — Divide números
- gmp_div_qr — Divide números y obtiene el cociente y el resto
- gmp_div_r — Resto de la división de números
- gmp_div — Alias of gmp_div_q
- gmp_divexact — División exacta de números
- gmp_fact — Factorial
- gmp_gcd — Calcula el MCD (máximo común divisor)
- gmp_gcdext — Calcula el MCD y los coeficientes
- gmp_hamdist — Distancia de Hamming
- gmp_init — Crea un número GMP
- gmp_intval — Convierte números GMP a números enteros
- gmp_invert — Invierte según el módulo
- gmp_jacobi — Calcula el sÃmbolo de Jacobi
- gmp_legendre — Calcula el sÃmbolo de Legendre
- gmp_mod — Operación Módulo
- gmp_mul — Multiplica números
- gmp_neg — Cambia el signo de un número
- gmp_nextprime — Find next prime number
- gmp_or — Realiza una operación de OR lógico
- gmp_perfect_square — Comprueba si es un cuadrado perfecto
- gmp_popcount — Calcula la población de un número
- gmp_pow — Eleva un número a una potencia
- gmp_powm — Eleva un número a una potencia según el módulo
- gmp_prob_prime — Comprueba si un número tiene probabilidades de ser un número primo
- gmp_random — Genera un número aleatorio
- gmp_scan0 — Busca un 0
- gmp_scan1 — Busca un 1
- gmp_setbit — Establece el valor de un bit
- gmp_sign — Obtiene el signo del número
- gmp_sqrt — Calcula la raÃz cuadrada
- gmp_sqrtrem — Calcula la raÃz cuadrada con el resto
- gmp_strval — Convierte un número GMP a una cadena de texto
- gmp_sub — Resta números
- gmp_testbit — Tests if a bit is set
- gmp_xor — Realiza una operación de XOR lógico