La distance de Hamming permet de mesurer le nombres de différences entre deux « suites de symboles ».
Dans cet exercice nous nous limiterons à des chaînes de caractères.
Soient \(a\) et \(b\) deux chaînes de caractères de même longueur. La distance de Hamming entre \(a\) et \(b\), notée \(hamming(a, b)\) est le nombre de positions où ces deux chaînes ont des caractères différents.
Ainsi :
\(hamming(«~ chat~ », «~ chat~ ») = 0\) : tous les caractères sont identiques ;
\(hamming(«~ louve~ », «~ poule~ ») = 2\) : les caractères en première position et en quatrième position sont différents.
À quoi ça sert ?
La distance de Hamming permet donc de mesurer les différences
entre deux suites de symboles.
Elle est en particulier utilisée en télécommunication afin de détecter les erreurs de transmissions dans un message. Dans le « cube » ci-dessous, les sommets sont des messages de trois bits. Deux sommets sont reliés par une arête si la distance de Hamming qui les sépare vaut \(1\). Les sommets \(100\) et \(001\) sont à une distance de \(3\) l'un de l'autre.
Écrire en Python la fonction hamming qui prend en paramètres deux chaînes de caractères a et bde même longueur et renvoie la distance de Hamming de ces deux chaînes.
On rappelle qu'il est possible de tester la différence de deux valeurs avec l'expression x!=y. Ainsi 3!=2 renvoie True et 3!=3 renvoie False.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)