PHPのgmp_cmp()関数とは?2つのGMP数値を比較する方法を解説
はじめに
PHPのgmp_cmp()関数は、任意精度整数(GMP数値)同士を比較するための関数です。通常の整数型では表現できない巨大な数値を扱う際に、2つの数値の大小関係を正確に判定することができます。
構文
gmp_cmp(n1, n2)
パラメータ
n1 − 比較対象となる最初のGMP数値。PHP 5.6以降ではGMPオブジェクトを指定できます。数値形式の文字列も受け付けます。
n2 − 比較対象となる2つ目のGMP数値。PHP 5.6以降ではGMPオブジェクトを指定できます。数値形式の文字列も受け付けます。
戻り値
gmp_cmp()関数は、比較結果として以下の整数値を返します。
- 1 − 最初の数値(n1)が大きい場合
- -1 − 2番目の数値(n2)が大きい場合
- 0 − 両方の数値が等しい場合
使用例
それでは、具体的なコード例を見てみましょう。
例1:等しい数値を比較する場合
<?php
$n1 = "32";
$n2 = "32";
$cmpres = gmp_cmp($n1, $n2);
echo $cmpres;
?>
出力
実行結果は以下のとおりです。
0
両方の数値が等しいため、「0」が出力されます。
例2:異なる数値を比較する場合
<?php
$n1 = "25";
$n2 = "30";
$cmpres = gmp_cmp($n1, $n2);
echo $cmpres;
?>
出力
実行結果は以下のとおりです。
-1
$n1(25)が$n2(30)より小さいため、「-1」が出力されます。
まとめ
gmp_cmp()関数を使用することで、標準の整数型では表現できない非常に大きな数値でも正確な比較が可能になります。GMP関数群は、暗号処理や科学技術計算など、多倍長整数を必要とする場面で広く活用されています。数値の大小判定が必要な場合は、ぜひこの関数を活用してみてください。
-
PHPのlog()関数とは?自然対数の計算方法と使い方を解説
定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l
-
PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説
lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し