ホームページ >バックエンド開発 >PHPチュートリアル >PHP は大きな数値のべき乗剰余演算をどのように正確に処理できるのでしょうか?

PHP は大きな数値のべき乗剰余演算をどのように正確に処理できるのでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 09:06:10804ブラウズ

How Can PHP Handle Modular Exponentiation with Large Numbers Accurately?

PHP での大きな数値のべき乗剰余演算

PHP で大きな数値を扱うと、特に、フェルマーの素数性テスト。多くの場合、大きな数値を乗算すると浮動小数点の結果が得られ、その後の剰余演算では不正な値が生成されます。

解決策

  • PHP の GMP ライブラリを使用します。 GNU 多倍精度演算ライブラリ (GMP) へのインターフェイス。
  • GMP ハンドル任意の長さ/精度の数値を効果的に使用し、正確なモジュラー計算を可能にします。

実装

use GMP;

$x = gmp_mul('62574', '62574');
echo GMP::strval($x) . PHP_EOL;
echo GMP::strval(GMP::mod($x, '104659')) . PHP_EOL;

出力:

3915505476
71714

GMP を使用すると、計算が正しく実行されます。そして正しいモジュラス値が得られます。これにより、大量の計算を処理するときに正確な結果が保証されます。

以上がPHP は大きな数値のべき乗剰余演算をどのように正確に処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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