프로그래밍에서 많은 숫자 계산을 처리하는 것이 일반적인 요구 사항입니다. 그러나 전통적인 정수 유형의 제한된 표현 범위로 인해 많은 수를 다룰 때 오버플로 문제가 발생하기 쉽습니다. PHP의 GMP (GNU 다중 정밀도) 확장은 큰 정수를 처리 할 수있는 솔루션을 제공합니다. 이 튜토리얼에서는 GMP 확장을 사용하여 많은 수의 GCD (Greatest Common Divisor) 및 최소 공통 다중 (LCM)를 계산하는 방법을 보여주고 코드 예제로 이러한 계산을 쉽게 구현할 수 있도록 도와줍니다.
GMP 확장을 사용하려면 먼저 PHP가 GMP 확장을 설치했는지 확인하십시오. phpinfo () 함수를 실행하여 PHP에 GMP가 설치되어 있는지 확인할 수 있습니다. 설치되지 않은 경우 아래 단계를 따라갈 수 있습니다.
$ ./configure-with-gmp
$ make
$ sudo는 설치합니다
Extension = gmp.so
GCD (Greatest Common Divisor)는 두 개 이상의 정수의 공통 구분 수를 가장 많이 나타냅니다. GMP 확장을 사용하여 가장 큰 공통 디바이저를 계산하는 방법은 다음과 같습니다.
함수 계산 gcd ($ a, $ b) { $ a = gmp_init ($ a); $ b = gmp_init ($ b); return gmp_strval (gmp_gcd ($ a, $ b)); } $ a = "123456789012345678901234567890"; $ b = "987654321098765432109876543210"; $ gcd = 계산 GCD ($ a, $ b); Echo "가장 큰 일반적인 구분 :". $ GCD;
코드 설명 :
가장 일반적인 다중 (LCM)는 둘 이상의 정수로 나눌 수있는 가장 작은 양의 정수를 나타냅니다. 다음 코드 예제를 사용하면 두 개의 큰 숫자의 최소 공통 배수를 계산할 수 있습니다.
함수 calculatelcm ($ a, $ b) { $ a = gmp_init ($ a); $ b = gmp_init ($ b); $ gcd = gmp_gcd ($ a, $ b); return gmp_strval (gmp_mul (gmp_div ($ a, $ gcd), $ b); } $ a = "123456789012345678901234567890"; $ b = "987654321098765432109876543210"; $ lcm = calculatelcm ($ a, $ b); 에코 "최소 공통 다중 :". $ lcm;
코드 설명 :
GMP 확장을 사용하면 가장 큰 공통 디바이저와 가장 일반적인 다중량을 쉽게 계산할 수 있습니다. 입력 및 출력 형식의 변환에주의를 기울이면 GMP 확장은 모든 크기의 정수를 처리하는 데 도움이되고 전통적인 정수 유형 오버 플로우의 문제를 피할 수 있습니다. 이 튜토리얼이 많은 수의 성능을보다 효율적으로 수행하는 데 도움이되기를 바랍니다.