Position actuelle: Accueil> Derniers articles> PHP implémente l'exemple de calcul de la somme de distance de distance

PHP implémente l'exemple de calcul de la somme de distance de distance

gitbox 2025-06-30

Qu'est-ce que la distance Hanming?

La distance de Hamming est un moyen de mesurer le nombre de caractères différents entre deux chaînes de longueur égale. Plus précisément, le nombre de caractères avec des positions différentes dans les positions correspondantes des deux chaînes est la distance de Hanming.

Par exemple, considérez les deux chaînes suivantes:

"ABCDEFGH" et "ABCXTDHY"

Leur distance de Hamming est 4 car ils diffèrent en personnages aux positions 4, 5, 6 et 8.

PHP Exemple de calcul de la somme des distances de Hamming

Supposons que nous ayons un tableau contenant plusieurs chaînes binaires de longueur égale, comme indiqué ci-dessous:

 
// Un tableau contenant plusieurs chaînes binaires de longueur égale
$array = ["1100", "1010", "1111", "0000"];

La question est: comment calculer la somme des distances de Hamming entre ces chaînes? Nous pouvons d'abord définir une fonction qui calcule la distance de Hamming:

 
/**
 * Calculez la distance de Hanming
 * @param string $str1
 * @param string $str2
 * @return int
 */
function hammingDistance($str1, $str2) {
    $dist = 0;
    $n = strlen($str1);
    for ($i = 0; $i < $n; $i++) {
        if ($str1[$i] !== $str2[$i]) {
            $dist++;
        }
    }
    return $dist;
}

Cette fonction traverse chaque caractère des deux chaînes, et si les caractères sont différents, le compteur est incrémenté de 1.

Ensuite, nous pouvons utiliser une boucle double pour calculer la somme de distance de Hamming de toutes les chaînes:

 
$len = count($array);
$sum = 0;
for ($i = 0; $i < $len; $i++) {
    for ($j = $i + 1; $j < $len; $j++) {
        $sum += hammingDistance($array[$i], $array[$j]);
    }
}
echo $sum; // Sortir 10

Grâce à ce processus, nous pouvons obtenir la somme des distances de Hamming entre toutes les chaînes binaires du réseau.

Exemple d'explication

En supposant que le tableau est ["1100", "1010", "1111", "0000"], la distance de Hamming de chaque paire de cordes binaires est la suivante:

 1100
1010   2
1111 3 1
0000 4 2 5

Par conséquent, les distances totales de Hamming sont 10.

Résumer

Cet article présente le concept de base de la distance de Hamming et fournit un exemple de PHP qui montre comment calculer la somme de distance de Hamming entre plusieurs chaînes binaires. La distance de Hanming est largement utilisée dans les champs de transmission de données, de chiffrement et de correction d'erreur. La maîtrise de cette méthode peut nous aider à mieux résoudre des problèmes connexes.