Entfernung von Hamming

In der Informationstheorie ist die Entfernung von Hamming zwischen zwei Schnuren der gleichen Länge die Zahl von Positionen, an denen die entsprechenden Symbole verschieden sind. Stellen Sie einen anderen Weg, er misst die minimale Zahl von Ersetzungen, die erforderlich sind, eine Schnur in den anderen oder die Zahl von Fehlern zu ändern, die eine Schnur in den anderen umgestaltet haben.

Beispiele

Die Hamming Entfernung zwischen:

  • "oe" und "oe" sind 3.
  • 10101 und 10101 ist 2.
  • 2396 und 2396 ist 3.

Spezielle Eigenschaften

Für eine feste Länge n ist die Entfernung von Hamming ein metrischer auf dem Vektorraum der Wörter dieser Länge, weil es offensichtlich die Bedingungen der Nichtnegativität, Identität von indiscernibles und Symmetrie erfüllt, und es leicht durch die ganze Induktion gezeigt werden kann, dass es die Dreieck-Ungleichheit ebenso befriedigt. Die Hamming Entfernung zwischen zwei Wörtern a und b kann auch als das Gewicht von Hamming a−b für eine passende Wahl &minus gesehen werden; Maschinenbediener.

Für binäre Schnuren a und b ist die Entfernung von Hamming der Zahl von (Bevölkerungszählung) in einem XOR b gleich. Der metrische Raum der Länge-n binäre Schnuren, mit der Entfernung von Hamming, ist als der Würfel von Hamming bekannt; es ist als ein metrischer Raum zum Satz von Entfernungen zwischen Scheitelpunkten in einem Hyperwürfel-Graphen gleichwertig. Man kann auch eine binäre Schnur der Länge n als ein Vektor in durch das Behandeln jedes Symbols in der Schnur als eine echte Koordinate ansehen; mit diesem Einbetten bilden die Schnuren die Scheitelpunkte eines n-dimensional Hyperwürfels, und die Entfernung von Hamming der Schnuren ist zur Entfernung von Manhattan zwischen den Scheitelpunkten gleichwertig.

Geschichte und Anwendungen

Die Entfernung von Hamming wird genannt nach Richard Hamming, der sie in seiner grundsätzlichen Zeitung auf Hamming eingeführt hat, codiert das Fehlerermitteln und den Fehler, der Codes 1950 korrigiert. Es wird im Fernmeldewesen verwendet, um die Zahl von geschnipsten Bit in einer festen Länge binäres Wort als eine Schätzung des Fehlers aufzuzählen, und wird manchmal deshalb die Signalentfernung genannt. Die Gewicht-Analyse von Hamming von Bit wird in mehreren Disziplinen einschließlich der Informationstheorie verwendet, Theorie und Geheimschrift codierend. Jedoch, um Reihen von verschiedenen Längen oder Schnuren zu vergleichen, wo nicht nur Ersetzungen sondern auch Einfügungen oder Auswischen erwartet werden müssen, ist ein hoch entwickelterer metrischer wie die Entfernung von Levenshtein passender.

Für Q-Ary-Schnuren über ein Alphabet der Größe q  2 wird die Entfernung von Hamming im Falle der orthogonalen Modulation angewandt, während die Entfernung von Lee für die Phase-Modulation verwendet wird. Wenn q = 2 oder q = 3 beide Entfernungen zusammenfallen.

Die Hamming Entfernung wird auch in der Systematik als ein Maß der genetischen Entfernung verwendet.

Auf einem Bratrost (wie ein Schachbrett) setzen die Punkte in einer Entfernung von Lee 1 die Nachbarschaft von von Neumann dieses Punkts ein.

Algorithmus-Beispiel

Die Pythonschlange-Funktion schätzt die Entfernung von Hamming zwischen

zwei Schnuren (oder andere Iterable-Gegenstände) der gleichen Länge, indem man eine Folge der Null schafft, und schätzt man anzeigende Fehlanpassungen und Matchs zwischen entsprechenden Positionen in den zwei Eingängen und dann das Summieren der Folge.

def hamming_distance (s1, s2):

behaupten Sie len (s1) == len (s2)

geben Sie Summe zurück (ch1! = ch2 für ch1, ch2 im Schwirren (s1, s2))

</Quelle>

Die folgende C-Funktion wird die Entfernung von Hamming von zwei ganzen Zahlen (betrachtet als binäre Werte, d. h. als Folgen von Bit) schätzen. Die Laufzeit dieses Verfahrens ist zur Entfernung von Hamming aber nicht zur Zahl von Bit in den Eingängen proportional. Es schätzt das bitwise exklusive oder der zwei Eingänge, und findet dann das Gewicht von Hamming des Ergebnisses (die Zahl von Nichtnullbit) das Verwenden eines Algorithmus davon findet wiederholt und klärt das Nichtnullbit der niedrigsten Ordnung.

nicht unterzeichneter hamdist (nicht unterzeichneter x, nicht unterzeichneter y)

{\

nicht unterzeichneter dist = 0, val = x ^ y;

//Zählen Sie die Zahl von Satz-Bit auf

während (val)

{\

++ dist;

val &= val - 1;

}\

geben Sie dist zurück;

}\

</Quelle>

Siehe auch

Index von Jaccard
  • Ähnlichkeit (Mathematik)
  • Ähnlichkeitsindex von Sørensen
  • Wortgolf

Referenzen

...

Links


Code von Hamming / Handshaking
Impressum & Datenschutz