De uitgebreide Hamming-afstand

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.

Hamming-afstand

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).

Definitie

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.

Opdracht

Schrijf een functie hamming(a, b) die de uitgebreide Hamming-afstand tussen twee getallen berekent en teruggeeft (een integer).

Voorbeelden

>>> hamming(123, 124)
1

>>> hamming(10, 122)
2

>>> hamming(123456, 12)
4