De Hamming-afstand is een maat voor hoe sterk twee teksten of getallen van elkaar verschillen. Ze wordt bijvoorbeeld gebruikt om fouten op te sporen bij het versturen van digitale gegevens.
Bijvoorbeeld: als een computer de binaire code
101101 verstuurt, maar de ontvanger
100101 ontvangt, is er één bit verschillend.
De Hamming-afstand is dan 1.
De Hamming-afstand wordt ook gebruikt om DNA-sequenties te vergelijken.
Bijvoorbeeld: als we twee DNA-sequenties vergelijken, kunnen we de Hamming-afstand gebruiken om het aantal verschillende nucleotiden te bepalen.
ATCGTACA en
ATGGTACG hebben een Hamming-afstand van 2, omdat er twee nucleotiden verschillen (de derde positie en de laatste).
We definiëren de uitgebreideHamming-afstand tussen twee getallen als het aantal posities waar ze een verschillend cijfer bevatten, vermeerderd met het verschil in lengte (≥ 0) van de getallen.
Schrijf een functie hamming(a, b) die de
uitgebreide Hamming-afstand tussen twee getallen berekent en
teruggeeft (een integer).
>>> hamming(123, 124)
1
>>> hamming(10, 122)
2
>>> hamming(123456, 12)
4