gmp_hamdist

ハミング距離

説明

int gmp_hamdist(GMPintstring $num1, GMPintstring $num2)

num1num2 の間のハミング距離を返します。オペランドは共に非負とする必要があります。

パラメータ

num1

GMP オブジェクト、int、 あるいは数値として解釈可能な string。 文字列の場合、gmp_init で基数を自動検出するとき (base に 0 を指定したとき) と同じ方法で解釈されます。

正の数である必要があります。

num2

GMP オブジェクト、int、 あるいは数値として解釈可能な string。 文字列の場合、gmp_init で基数を自動検出するとき (base に 0 を指定したとき) と同じ方法で解釈されます。

正の数である必要があります。

戻り値

num1num2 のハミング距離を int として返します。

例1 gmp_hamdist の例

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* ハミング距離は、以下と等しくなります */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

上の例の出力は以下となります。

6
6

参考

  • gmp_popcount
  • gmp_xor