gmp_hamdist

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

gmp_hamdistDistance de Hamming

Description

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

Retourne la distance de Hamming entre num1 et num2. Les deux paramètres doivent être strictement positifs.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Doit être positif.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Doit être positif.

Valeurs de retour

La distance de Hamming entre num1 et num2, sous la forme d'un int.

Exemples

Exemple #1 Exemple avec gmp_hamdist()

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

/* hamdist est équivalent à : */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

L'exemple ci-dessus va afficher :

6
6

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
4
Bas Vijfwinkel
6 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
-1
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