プログラミングでは、多数の計算を処理することが一般的な要件です。ただし、従来の整数タイプの表現範囲が限られているため、オーバーフローの問題は、多数を扱うときに発生する傾向があります。 PHPのGMP(GNU多重精度)拡張は、あらゆる大型整数を処理できるソリューションを提供します。このチュートリアルでは、GMP拡張機能を使用して、最大の共通除数(GCD)と多数の最小共通の複数(LCM)を計算する方法を示し、これらの計算をコードの例で簡単に実装するのに役立ちます。
GMP拡張機能を使用するには、まずPHPがGMP拡張機能をインストールしていることを確認してください。 PHPがPHPINFO()関数を実行してGMPをインストールしているかどうかを確認できます。インストールされていない場合は、以下の手順に従うことができます。
$ ./CONFIGURE -WITH-GMP
$ make
$ sudoはインストールします
extension = gmp.so
Greatest Common visor(GCD)は、2つ以上の整数の共通除数の最大数を指します。 GMP拡張を使用して最大の一般的な除数を計算する方法は次のとおりです。
関数calculategcd($ a、$ b){ $ a = gmp_init($ a); $ b = gmp_init($ b); return gmp_strval(gmp_gcd($ a、$ b)); } $ a = "123456789012345678901234567890"; $ b = "987654321098765432109876543210"; $ gcd = calculategcd($ a、$ b); エコー「最大の共通の取り除くinor:」。 $ gcd;
コード説明:
最も一般的な倍数(LCM)は、2つ以上の整数で分割できる最小の正の整数を指します。次のコードの例を使用すると、2つの多数の最小共通倍数を計算できます。
関数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拡張は、あらゆるサイズの整数に対処し、従来の整数タイプのオーバーフローの問題を回避するのに役立ちます。このチュートリアルが、より効率的に多数を実行するのに役立つことを願っています。