PHP および GMP チュートリアル: 大きな整数の計算を行う方法

PHPz
リリース: 2023-07-29 14:12:01
オリジナル
855 人が閲覧しました

PHP および GMP チュートリアル: 計算に大きな整数を使用する方法

概要:
PHP プログラミングでは、ビルドされた範囲を超える値の処理など、大きな整数の計算を実行する必要があることがよくあります。 -in 整数型。一般的な解決策は、GMP (GNU Multiple Precision Arithmetic Library) 拡張機能を使用することです。このチュートリアルでは、PHP および GMP 拡張機能を使用して大きな整数の計算を実行する方法を示し、理解を深めるのに役立ついくつかのサンプル コードを提供します。

GMP 拡張機能のインストールと有効化:
まず、GMP 拡張機能がサーバーにインストールされていることを確認する必要があります。 GMP 拡張機能がインストールされているかどうかを確認するには、ターミナルで次のコマンドを実行します。

php -m | grep gmp
ログイン後にコピー

出力に「gmp」が含まれている場合、GMP 拡張機能はインストールされています。インストールされていない場合は、次の手順に従ってインストールできます。

  1. まず、GMP ライブラリの最新バージョンを GMP 公式 Web サイト (https://gmplib. org/)。
  2. ダウンロードした GMP ライブラリをサーバーに解凍し、解凍されたディレクトリに移動します。
  3. 次のコマンドを実行して構成とインストールを行います:
./configure
make
make install
ログイン後にコピー
  1. インストールが完了したら、php.ini ファイルを開いて次の行を追加します:
extension=gmp.so
ログイン後にコピー
  1. php.ini ファイルを保存して閉じ、Web サーバーを再起動します。

基本的な大きな整数の計算:
GMP 拡張機能を有効にすると、大きな整数の計算にそれを使用できるようになります。まず、整数を GMP オブジェクトに変換する必要があります。 PHP は、この変換を実現する gmp_init() 関数を提供します:

$number = gmp_init(1234567890);
ログイン後にコピー

次に、加算、減算、乗算、除算などのさまざまな計算操作を実行できます:

$sum = gmp_add($number, '9876543210');
$difference = gmp_sub($number, '500000000');
$product = gmp_mul($number, '987');
$quotient = gmp_div($number, '1234');
ログイン後にコピー

上記のコード例、 2 つの大きな整数を加算し、2 つの大きな整数を減算し、大きな整数と通常の整数を乗算し、大きな整数を通常の整数で除算します。

その他の一般的な操作:
基本的な計算操作に加えて、GMP 拡張機能は他の多くの便利な関数も提供します。以下にいくつかの例を示します。

// 取模运算
$modulus = gmp_mod($number, '567');
// 求幂运算
$result = gmp_pow($number, 5);
// 比较两个大整数的大小
$compare = gmp_cmp($number, '24680');
// 转换为字符串
$string = gmp_strval($number);
ログイン後にコピー

上記のコード例では、モジュロ演算に gmp_mod() 関数を使用する方法、べき乗に gmp_pow() 関数を使用する方法、および gmp_cmp 関数を使用する方法を示します。比較のための () 関数。2 つの大きな整数のサイズ、および gmp_strval() 関数を使用して GMP オブジェクトを文字列に変換する方法。

概要:
このチュートリアルでは、PHP および GMP 拡張機能を使用して大きな整数の計算を実行する方法を学びました。最初に GMP 拡張機能をインストールして有効にするプロセスを紹介し、次に基本的な整数計算操作とその他の一般的な操作を検討しました。このチュートリアルを通じて、PHP の GMP 拡張機能を使用して大きな整数の計算を実行する技術を習得できたことを願っています。コーディングを楽しんでください!

以上がPHP および GMP チュートリアル: 大きな整数の計算を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート