gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_hamdistHamming distance

Descrierea

gmp_hamdist ( GMP|int|string $num1 , GMP|int|string $num2 ) : int

Returns the hamming distance between num1 and num2. Both operands should be non-negative.

Parametri

num1

Un număr GMP sub formă de resource în PHP 5.5 și anterior, un obiect GMP în PHP 5.6 și ultrior, su un șir de caractere numeric atunci când acesta poate fi convertit într-un număr.

It should be positive.

num2

Un număr GMP sub formă de resource în PHP 5.5 și anterior, un obiect GMP în PHP 5.6 și ultrior, su un șir de caractere numeric atunci când acesta poate fi convertit într-un număr.

It should be positive.

Valorile întoarse

The hamming distance between num1 and num2, as an int.

Exemple

Example #1 gmp_hamdist() example

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

/* hamdist is equivalent to: */
echo gmp_popcount(gmp_xor($ham1$ham2)) . "\n";
?>

Exemplul de mai sus va afișa:

6
6

A se vedea și

add a note add a note

User Contributed Notes 2 notes

up
3
Bas Vijfwinkel
5 years ago
For those without gmp support :

$hamming_distance = count(array_diff_assoc(str_split($string1), str_split($string2)));

And if you are not sure if your strings have equal length :

$hamming_distance = count(array_diff_assoc(str_split(str_pad($string1,strlen($string2)-strlen($string1),' ')), str_split(str_pad($string2,strlen($string1)-strlen($string2),' '))));
up
0
grabzila at gmail dot com
3 years ago
<?php
$hamdist
= gmp_hamdist(-100, -10); // 4
$hamdist = gmp_hamdist(100, 10);  // 5
?>

The function works great with negative numbers.
To Top