PHPのgmp_hamdist()関数の使い方を徹底解説!2つのGMP数値間のハミング距離を求める方法
PHPの gmp_hamdist() 関数は、2つのGMP数値(多倍長整数)の間のハミング距離を取得するために使用されます。ハミング距離とは、2つの数値をバイナリ表現した際に、異なるビットの数を指します。この関数は、誤り検出や符号理論などの場面で活用される重要な関数です。
構文
gmp_hamdist(n1, n2)
パラメータ
n1 − 1つ目のGMP数値です。PHP 5.6以降ではGMPオブジェクトを指定できます。また、数値形式の文字列も使用可能です。
n2 − 2つ目のGMP数値です。PHP 5.6以降ではGMPオブジェクトを指定できます。また、数値形式の文字列も使用可能です。
戻り値
gmp_hamdist() 関数は、ハミング距離を表すGMP数値として結果を返します。
使用例
以下は、gmp_hamdist() 関数を使用したサンプルコードです。
<?php $n1 = "5"; $n2 = "5"; $dist = gmp_hamdist($n1, $n2); echo $dist; ?>
実行結果
上記のコードを実行すると、以下の出力が得られます。
0
解説
この例では、$n1 と $n2 の両方に「5」が設定されています。同じ数値同士を比較しているため、バイナリ表現上で異なるビットは存在せず、ハミング距離は「0」となります。
例えば、「5」はバイナリで「101」、「3」はバイナリで「011」です。これらを比較すると、最上位ビットと中央のビットが異なるため、ハミング距離は「2」になります。
注意点
- 引数には負の数を指定できません。負の数を渡した場合、エラーが発生します。
- PHP 5.6以降では、GMPオブジェクトを直接引数として渡すことが可能です。
- 文字列で数値を指定する場合も、自動的にGMP数値へ変換されるため、事前の変換処理は不要です。
-
PHPのgmp_div_q()関数とは?GMP数値の除算方法をわかりやすく解説
gmp_div_q() 関数は、PHPのGMP拡張モジュールが提供する関数の一つで、大きな整数(GMP数値)同士の除算を行い、その商(割り算の結果)を求めるために使用されます。通常の整数型では扱えない桁数の巨大な数値を正確に計算したい場合に非常に便利です。 構文 gmp_div_q(n1, n2, rounding_mode) パラメータ n1 − 割られる側の最初のGMP数値です。PHP 5.6以降ではGMPオブジェクトを指定でき、それ以前のバージョンや一般的な用途では数値文字列も使用可能です。 n2 − 割る側となる2番目のGMP数値です。こちらもPHP 5.6以降ではGMPオブジェクト
-
PHPのgmp_and()関数とは?ビット演算ANDの使い方を解説
PHPの gmp_and() 関数は、2つのGMP数値に対してビット単位のAND(論理積)演算を行い、その結果を返す関数です。GMPライブラリを使用することで、通常の整数型では扱えない大きな数値でも正確にビット演算が可能になります。構文gmp_and($n1, $n2)パラメータn1 − 1つ目のGMP数値。PHP 5.6以降ではGMPオブジェクトを指定できます。数値形式の文字列も渡すことが可能です。n2 − 2つ目のGMP数値。こちらも同様に、PHP 5.6以降ではGMPオブジェクト、または数値形式の文字列を指定できます。戻り値gmp_and() 関数は、ビット単位のAND演算の結果をGMP