Funzioni GMP
Introduzione
Queste funzioni permettono di lavorare con numeri interi di lunghezza arbitraria usando le librerie GNU MP.
Queste funzioni sono state aggiunte in PHP 4.0.4.
Nota: Molte funzioni accettano argomenti numerici GMP, definiti come risorsepiù in basso. Comunque, molte di queste funzioni accetteranno anche normali argomenti numerici e stringhe, considerato ciò è quindi possibile convertire queste ultime in numero. Inoltre, se c'è una funzione che può operare velocemente su argomenti interi, questa potrebbe essere usata al posto della più lenta quando l'argomento fornito è un intero. Questo è fatto con chiarezza, così la logica vuole che tu possa utilizzare numeri interi in ogni funzione che richieda un numero GMP. Vedere anche la funzione gmp_init().
Se desideri specificare un "large integer" come costante, scrivilo tra virgolette come stringa. Se non lo fai, PHP interpreterà l'"integer literal" immediatamente, con una possibile perdita di precisione, ancora prima che la libreria GMP venga richiamata.
Nota: Questa estensione non è disponibile sulle piattaforme Windows.
Requisiti
Puoi scaricare la libreria GMP dal sito » https://www.swox.com/gmp/. Dove è possibile anche scaricare il manuale GMP.
Per usare queste funzioni è necessaria la versione 2 o superiore delle librerie GMP.
Installazione
Per potere utilizzare queste funzioni, occorre compilare il PHP con il supporto GMP utilizzando il parametro --with-gmp.
Configurazione di Runtime
Questa estensione non definisce alcuna direttiva di configurazione in php.ini
Tipi di risorse
Questa estensione non definisce alcun tipo di risorsa.
Costanti predefinite
Queste costanti sono definite da questa estensione e sono disponibili solo se l'estensione è stata compilata nel PHP o se è stata caricata dinamicamente a runtime.
Esempi
Example#1 Funzione fattoriale usando GMP
<?php
function fact ($x)
{
if ($x <= 1) {
return 1;
} else {
return gmp_mul($x, fact($x-1));
}
}
echo gmp_strval (fact (1000)) . "\n";
?>
Questo calcolerà il fattoriale di 1000 (numero abbastanza grande) molto velocemente.
Vedere anche:
Ulteriori funzioni matematiche sono elencate nelle sezioni BCMath Funzione Matematiche a Precisione Arbitraria e Funzioni Matematiche.
Indice dei contenuti
- gmp_abs — Valore assoluto
- gmp_add — Somma di numeri
- gmp_and — AND logico
- gmp_clrbit — Pulisce bit
- gmp_cmp — Confronto di numeri
- gmp_com — Calcola il complemento a uno di 'a'
- gmp_div_q — Divide due numberi
- gmp_div_qr — Divide due numeri e restituisce quoziente e resto
- gmp_div_r — Resto di una divisione
- gmp_div — Divisione di numberi
- gmp_divexact — Divisione intera di numeri
- gmp_fact — Fattoriale
- gmp_gcd — Calcola il MCD
- gmp_gcdext — Calcola il MCD e moltiplicatori
- gmp_hamdist — Distanza dell'hamming
- gmp_init — Crea un numero GMP
- gmp_intval — Converte un numero GMP in un intero
- gmp_invert — Inversione di modulo
- gmp_jacobi — Simbolo di Jacobi
- gmp_legendre — Simbolo di Legendre
- gmp_mod — Modulo
- gmp_mul — Prodotto di numeri
- gmp_neg — Rende un numero negativo
- gmp_nextprime — Find next prime number
- gmp_or — OR logico
- gmp_perfect_square — Controllo quadrato perfetto
- gmp_popcount — Conteggio della popolazione
- gmp_pow — Eleva un numero a potenza
- gmp_powm — Modulo di un elevamento a potenza.
- gmp_prob_prime — Controlla se il numero è "probabilmente primo"
- gmp_random — Generatore di numeri casuali
- gmp_scan0 — Ricerca per 0
- gmp_scan1 — Ricerca per 1
- gmp_setbit — Imposta bit
- gmp_sign — Segno di un numero
- gmp_sqrt — Radice quadrata
- gmp_sqrtrem — Radice quadrata con resto
- gmp_strval — Converte un numero GMP in una stringa
- gmp_sub — Sottrazione di numeri
- gmp_testbit — Tests if a bit is set
- gmp_xor — XOR logico