Dans PHP, GMP_LEGENDRE () est une fonction fournie par l'extension GMP pour calculer le symbole Legendre. Cette fonction est largement utilisée dans la théorie des nombres, en particulier pour juger si un entier est le résidu carré dans un module principal.
La définition de la fonction est la suivante:
int gmp_legendre(GMP $a, GMP $p)
Là où $ a est l'intégralité jugée, $ p est un nombre premier étrange, et les deux paramètres doivent être de type GMP.
Le symbole de Lejeander est une notation mathématique qui indique si un entier est un résidu quadratique sous un module principal. La définition mathématique est la suivante:
(a / p) = a (p? 1) / 2 mod p
Ici, A est n'importe quel entier, et P est un nombre premier étrange. Les résultats sont les suivants:
Ensuite, nous utilisons deux exemples pour illustrer comment utiliser GMP_LEGENDRE () pour déterminer si un entier est résiduel carré ou non réévaluant.
$a = gmp_init(5);
$p = gmp_init(7);
$ls = gmp_legendre($a, $p);
if ($ls == 1) {
echo "$a Oui $p Carré restant";
} else {
echo "$a 不Oui $p Carré restant";
}
La sortie sera: "5 est le carré restant de 7".
$a = gmp_init(5);
$p = gmp_init(11);
$ls = gmp_legendre($a, $p);
if ($ls == -1) {
echo "$a Oui $p Non-ré-échange";
} else {
echo "$a 不Oui $p Non-ré-échange";
}
La sortie de ce code sera: "5 n'est pas un non-réévaluation secondaire de 11".
Lorsque vous appelez la fonction GMP_LEGENDRE () , vous devez faire attention aux points suivants:
GMP_LEGENDRE () est une fonction mathématique PHP pratique qui convient pour déterminer si un entier est un résidu carré dans un module principal. Ce n'est pas seulement un bon outil pour apprendre la combinaison de PHP et de théorie des nombres, mais a également une valeur d'application pratique en cryptographie, une compétition d'algorithme et d'autres domaines. Lorsque vous l'utilisez, il vous suffit de faire attention aux exigences de type GMP et de paramètres, et vous pouvez terminer avec succès le calcul du symbole Lejander.