Arian Soleimanzadeh
  • Startseite
  • Blog
  • Podcasts
  • Videos
  • Kontakt
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
Bereich•Schnellkontakt

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

Termin vereinbaren

Senden Sie eine kurze Nachricht — ich antworte so bald wie möglich.

LinkedInSchnelle Antwort
Startseite/Artikel/Was ist die Hamming-Distanz? Konzept, Implementierung und praktische Anwendungen
AlgorithmsArtikel

Was ist die Hamming-Distanz? Konzept, Implementierung und praktische Anwendungen

Die Hamming-Distanz misst, an wie vielen Positionen sich zwei gleich lange Sequenzen unterscheiden. Dieser Artikel erklärt Algorithmus, Komplexität, XOR-Variante, TypeScript-Implementierung und Anwendungen.

19. August 20266 Min. Lesezeit1 Aufrufe
#Algorithms#Hamming Distance#String Algorithms#Bit Manipulation#TypeScript

Arian Soleimanzadeh

Software Engineer & Researcher

Visualisierung der Hamming-Distanz beim Vergleich von Strings und Binärdaten

Arian Soleimanzadeh

KI · Code · Produkt

Forschung + Engineering
Auf dieser Seite
GrundideeFormale DefinitionAlgorithmusTypeScriptKomplexitätBinäre Zahlen und XORPraktische AnwendungenFehlererkennung und CodierungDigitale KommunikationComputer VisionMachine LearningHamming-Distanz vs. Levenshtein-DistanzWann ist sie geeignet?Typische InterviewfrageFazit

Die Hamming-Distanz misst die Anzahl der Positionen, an denen sich zwei gleich lange Sequenzen unterscheiden. Sie ist einfach, schnell und besonders nützlich bei Strings, Bitfolgen und binären Merkmalen.

Grundidee

Beispiel:

karolin
kathrin

Positionsweiser Vergleich:

k a r o l i n
k a t h r i n
    ↑ ↑ ↑

Drei Positionen unterscheiden sich:

Hamming Distance = 3

In der klassischen Definition müssen beide Sequenzen dieselbe Länge besitzen.

Formale Definition

Für zwei Sequenzen x und y der Länge n:

H(x, y) = Σ [x[i] ≠ y[i]]

Jede unterschiedliche Position zählt als 1.

Algorithmus

  1. Prüfen, ob beide Eingaben gleich lang sind.
  2. Zähler mit 0 initialisieren.
  3. Alle Positionen durchlaufen.
  4. Bei einem Unterschied den Zähler erhöhen.
  5. Zähler zurückgeben.
function hammingDistance(a, b):
    if length(a) != length(b):
        error

    distance = 0

    for i from 0 to length(a) - 1:
        if a[i] != b[i]:
            distance++

    return distance

TypeScript

function hammingDistance(a: string, b: string): number {
  if (a.length !== b.length) {
    throw new Error("Inputs must have the same length.");
  }

  let distance = 0;

  for (let i = 0; i < a.length; i++) {
    if (a[i] !== b[i]) {
      distance++;
    }
  }

  return distance;
}

Komplexität

Time Complexity: O(n)
Space Complexity: O(1)

Jede Position wird einmal geprüft, zusätzlicher Speicher ist praktisch nicht nötig.

Binäre Zahlen und XOR

Bei zwei Ganzzahlen ist XOR besonders praktisch.

1010
XOR
1110
----
0100

Jedes gesetzte Bit im XOR-Ergebnis repräsentiert eine unterschiedliche Bitposition.

Hamming Distance = Anzahl der 1-Bits in (x XOR y)

Mit Brian Kernighans Technik:

function hammingDistanceBits(x: number, y: number): number {
  let value = x ^ y;
  let distance = 0;

  while (value !== 0) {
    value &= value - 1;
    distance++;
  }

  return distance;
}

value & (value - 1) entfernt in jedem Durchlauf ein gesetztes Bit.

Praktische Anwendungen

Fehlererkennung und Codierung

Die Hamming-Distanz ist wichtig für Error Detection und Error-Correcting Codes.

Digitale Kommunikation

Bitmuster können effizient verglichen werden, um Unterschiede in übertragenen Daten zu erkennen.

Computer Vision

Binäre Deskriptoren von Bildmerkmalen lassen sich mit der Hamming-Distanz schnell vergleichen.

Machine Learning

Für binäre oder kategorial codierte Feature-Vektoren kann sie als einfache Distanzmetrik dienen.

A = [1, 0, 1, 1, 0]
B = [1, 1, 1, 0, 0]

Distance = 2

Hamming-Distanz vs. Levenshtein-Distanz

Die Hamming-Distanz vergleicht nur korrespondierende Positionen und setzt normalerweise gleiche Längen voraus.

Die Levenshtein-Distanz erlaubt dagegen:

  • Insert
  • Delete
  • Replace

Für cat und cats ist die klassische Hamming-Distanz nicht definiert, während die Levenshtein-Distanz 1 beträgt.

Wann ist sie geeignet?

Die Hamming-Distanz ist sinnvoll, wenn Sequenzen gleich lang sind, Positionen relevant sind und nur Unterschiede beziehungsweise Substitutionen gezählt werden sollen.

Wenn Einfügen und Löschen ebenfalls berücksichtigt werden müssen, ist Levenshtein meist geeigneter.

Typische Interviewfrage

Gegeben sind zwei Ganzzahlen x und y. Wie viele Bits müssen geändert werden, um x in y zu verwandeln?

Lösung:

1. x XOR y berechnen
2. gesetzte Bits zählen

Beispiel:

1 = 0001
4 = 0100
XOR = 0101

Die Distanz ist 2.

Fazit

Die Hamming-Distanz zählt die Positionen, an denen zwei gleich lange Sequenzen voneinander abweichen.

Bei Strings reicht eine lineare Schleife. Für Integer ist XOR + Set-Bit Counting die typische Lösung. Durch O(n) Laufzeit und O(1) zusätzlichen Speicher ist die Methode einfach und effizient.

Auf dieser Seite
GrundideeFormale DefinitionAlgorithmusTypeScriptKomplexitätBinäre Zahlen und XORPraktische AnwendungenFehlererkennung und CodierungDigitale KommunikationComputer VisionMachine LearningHamming-Distanz vs. Levenshtein-DistanzWann ist sie geeignet?Typische InterviewfrageFazit

Artikeldetails

Veröffentlichungsdaten, Lesezeit und aktuelle Aufrufzahlen.

Veröffentlicht

19. August 2026

Aktualisiert

19. August 2026

Lesezeit

6 Min. Lesezeit

Aufrufe

1

Autor

Arian Soleimanzadeh

Vorheriger Artikel

B2B CRM vs. B2C CRM: Unterschiede von Vertriebsprozessen bis zur Softwarearchitektur

Nächster Artikel

Was sollten Vertriebsmitarbeiter vor der Nutzung eines CRM oder intelligenten CRM wissen?

Lassen Sie uns etwas Klares, Schnelles und Schönes bauen.

Schneller Kontakt für Zusammenarbeit, Beratung oder Produktarbeit.

SchnellkontaktE-Mail senden
Arian Soleimanzadeh

Ein persönliches Portfolio mit Fokus auf moderne Webentwicklung, UI-Systeme und praxisnahe KI-Produkte — sauberer Code, klares Design.

Schnellzugriff

  • Über mich
  • Blog
  • Projekte
  • Kontakt

Kontakt

  • info@ariansoleimanzadeh.site
  • soleimanzadeh.a.work@gmail.com

Verfügbarkeit: Wochentage

Antwortet in der Regel innerhalb von 24 Std.

Newsletter

Erhalten Sie Neuigkeiten zu Beiträgen, Projekten und neuen Veröffentlichungen.

© 2026 ariansoleimanzadeh.site — Alle Rechte vorbehalten.

LinkedIn