모듈식 지수화를 위해 PHP에서 큰 숫자 처리
모듈식 지수화는 Fermat 원시성 테스트와 같은 다양한 수학 응용 프로그램에서 필수적인 연산입니다. 그러나 PHP에서 큰 숫자를 처리하면 문제가 발생할 수 있습니다.
PHP에서 두 개의 큰 숫자를 곱하면 결과가 자동으로 부동 소수점으로 변환됩니다. 이는 범용 연산에는 편리할 수 있지만 모듈식 값으로 작업할 때는 문제가 됩니다.
$x = 62574 * 62574; var_dump($x); // float(3915505476) ... correct var_dump($x % 104659); // int(-72945) ... unexpected
PHP의 모듈로 연산자는 부동 소수점 데이터 유형이 큰 정수를 정확하게 나타내지 않기 때문에 잘못된 결과를 반환합니다.
해결책: GMP 라이브러리
이 문제를 해결하려면 GMP 라이브러리를 활용하세요. (GNU 다중 정밀도 라이브러리) 확장. GMP는 큰 숫자 작업을 위해 특별히 설계된 함수와 데이터 유형을 제공합니다.
작곡기 패키지 관리자를 사용하여 GMP를 설치할 수 있습니다.
composer require gmp
예:
use GMP; $x = GMP::mul(62574, 62574); var_dump($x); // gmp("3915505476") ... correct var_dump(GMP::mod($x, 104659)); // gmp("73714") ... correct
GMP는 곱셈, 덧셈, 비교, 모듈로 등 큰 숫자 작업을 위한 다양한 기능을 제공합니다. 운영. 이러한 기능은 가장 광범위한 계산에서도 정확한 결과를 보장합니다.
위 내용은 PHP에서 모듈식 지수화를 위해 큰 숫자를 어떻게 정확하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!