ホームページ  >  記事  >  バックエンド開発  >  PHP および GMP チュートリアル: 大きな数のオイラー換算を計算する方法

PHP および GMP チュートリアル: 大きな数のオイラー換算を計算する方法

王林
王林オリジナル
2023-07-30 13:09:171336ブラウズ

PHP および GMP チュートリアル: 大きい数のオイラーの換算累乗を計算する方法

オイラーの合計関数は、整数論における一般的な関数であり、特定の数以下の正の整数を計算するために使用されます。 n と相対的に素な数 n の数。大きな数のオイラーべき乗を計算する場合、データ量が大きいため、通常の計算方法を直接使用することはできず、PHP の GMP (GNU Multiple Precision) 拡張機能を使用して演算を実行する必要があります。この記事では、PHP と GMP を使用して大きな数のオイラー換算累乗を計算する方法を紹介し、コード例を示します。

  1. GMP 拡張機能をインストールする
    始める前に、GMP 拡張機能が PHP にインストールされていることを確認する必要があります。インストールされていない場合は、以下の手順に従ってインストールできます。

まず、PHP 拡張機能のディレクトリを確認し、phpinfo() 関数を実行すると、現在の PHP 設定情報を確認できます。表示された構成情報で「extension_dir」を見つけて、拡張機能ディレクトリのパスを記録します。

次に、GMP 公式 Web サイト (https://gmplib.org/) から GMP ライブラリのソース コードをダウンロードし、ローカルに解凍します。

コマンド ライン ウィンドウを開き、解凍された GMP ディレクトリを入力します。

次のコマンドを実行してコンパイルしてインストールします。

$ ./configure
$ make
$ make install

インストールが完了したら、コンパイルされた GMP 拡張ファイル (通常は gmp.so または gmp.dll) を、以前に記録した拡張子にコピーします。ディレクトリ。

php.ini ファイルを編集し、ファイルの最後に次の行を追加します。

extension=gmp

php.ini ファイルを保存して閉じます。

新しい GMP 拡張機能を有効にするには、Web サーバーを再起動します。

  1. オイラーの換算値の計算
    次に、PHP と GMP を使用してオイラーの換算値を計算します。以下は、オイラーの換算電力を計算するためのサンプル コードです。
<?php
function euler_power($base, $exponent, $modulus) {
    $result = gmp_init(1);

    while (gmp_cmp($exponent, 0) > 0) {
        if (gmp_even($exponent)) {
            $base = gmp_powm($base, 2, $modulus);
            $exponent = gmp_div_q($exponent, 2);
        } else {
            $result = gmp_mul($result, $base);
            $exponent = gmp_sub($exponent, 1);
        }
    }

    return gmp_mod($result, $modulus);
}

// 示例用法
$base = gmp_init(23456789);
$exponent = gmp_init(98765432);
$modulus = gmp_init(1234567891);

$result = euler_power($base, $exponent, $modulus);
echo gmp_strval($result);
?>

上記のコード例では、オイラーの換算電力を計算するために、euler_power という名前の関数を定義します。この関数は、基数、指数、および係数の 3 つのパラメータを受け入れます。この関数は、ループと条件判定を使用してインデックスのパリティを決定し、パリティに基づいて対応する演算を実行し、最終的に計算結果を返します。

使用例では、gmp_init 関数を使用して、基数、指数、および法を GMP の整数型に変換します。次に、euler_power 関数を呼び出してオイラーの換算電力を計算し、gmp_strval 関数を使用して計算結果を文字列に変換して出力します。

注: GMP 関数を使用する場合、パラメータの型は GMP の整数型である必要があります。そうでない場合はエラーが発生します。したがって、変数を定義するときは、gmp_init 関数を使用して、GMP の整数型に変換する必要があります。

  1. 概要
    この記事では、PHP と GMP を使用して大きな数のオイラー換算累乗を計算する方法を紹介します。 GMP 拡張機能をインストールすると、PHP で多数の操作を実行し、GMP が提供する関数を使用して複雑な操作を完了できるようになります。サンプル コードでは、オイラーの換算電力を計算する関数を定義する方法を示し、参照用の使用例を示します。この記事が、読者が PHP と GMP を使用して大きな数のオイラー換算累乗を計算し、その恩恵を受ける方法を理解するのに役立つことを願っています。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。