PHP에서 GMP_LEGENDRE ()는 GMP 확장자가 LEGENDRE 기호를 계산하기 위해 제공하는 함수입니다. 이 기능은 특히 정수가 프라임 모듈러스 아래의 사각형 잔류 물인지 판단 할 때 숫자 이론에서 널리 사용됩니다.
함수 정의는 다음과 같습니다.
int gmp_legendre(GMP $a, GMP $p)
여기서 $ a 는 판단 된 정수이고 $ p는 홀수 소수이며 두 매개 변수 모두 GMP 유형이어야합니다.
레즈안더 기호는 정수가 프라임 모듈러스 아래의 2 차 잔차인지를 나타내는 수학적 표기법입니다. 수학적 정의는 다음과 같습니다.
(a/p) = a (p? 1)/2 mod p
여기에 A 는 모든 정수이고 P는 홀수 소수입니다. 결과는 다음과 같습니다.
다음으로 GMP_LEGENDRE ()를 사용하여 정수가 사각형 잔류 또는 2 차 비 에메인 링 여부를 결정하는 방법을 설명하기 위해 두 가지 예를 사용합니다.
$a = gmp_init(5);
$p = gmp_init(7);
$ls = gmp_legendre($a, $p);
if ($ls == 1) {
echo "$a 예 $p 남은 정사각형";
} else {
echo "$a 不예 $p 남은 정사각형";
}
출력은 다음과 같습니다. "5는 남은 정사각형 7"입니다.
$a = gmp_init(5);
$p = gmp_init(11);
$ls = gmp_legendre($a, $p);
if ($ls == -1) {
echo "$a 예 $p 2 차 비 에해요";
} else {
echo "$a 不예 $p 2 차 비 에해요";
}
이 코드의 출력은 다음과 같습니다. "5는 11의 2 차 비 에해요가 아닙니다".
GMP_LEGENDRE () 함수를 호출 할 때는 다음 사항에주의를 기울여야합니다.
GMP_LEGENDRE ()는 정수가 프라임 모듈러스 하에서 정사각형 잔류인지 여부를 결정하는 데 적합한 실제 PHP 수학적 함수입니다. PHP와 숫자 이론의 조합을 배우기위한 좋은 도구 일뿐 만 아니라 암호화, 알고리즘 경쟁 및 기타 분야에서 실질적인 적용 가치도 있습니다. 그것을 사용할 때는 GMP 유형 및 매개 변수 요구 사항에주의를 기울이면 Lejander 기호의 계산을 성공적으로 완료 할 수 있습니다.