skip to main content

kiesler.at

Hammingdistanz a la EPROG
updated by rck, 2004-11-06

Ich habe mal spaßhalber ein Programm aus der EPROG-Beispielsammlung umgesetzt. Es hat die Nummer 1074 und ermittelt die Hammingdistanz von ein paar übergebenen Codewörtern.

                     
1 | 2 | 3 | 4 | 5 | 6

Die Problemstellung

Wie so vieles im Leben beginnt das Programm mit einer Eingabe. In diesem Fall besteht sie aus drei Teilen:

- der Codewortl�nge
- den Codew�rtern
- dem Terminatorsymbol

Die Codewortl�nge bestimmt, wie lange die folgenden Codew�rter sein sollen. Das Terminatorsymbol darf kein Codewort sein und mu� ein Zeichen lang sein. 0 und 1 fallen damit flach.

Die Hammingdistanz

Was ist eine Hammingdistanz? Die genauen Details werden in Grundz�ge der Informatik (fr�her: Einf�hrung in die Informatik, danke Wings-Of-Glory/Informatik-Forum) gelehrt. Im wesentlichen sagt die Hammingdistanz aus, wie stark sich zwei W�rter unterscheiden. Genauer gibt sie die Anzahl der unterschiedlichen Bits in zwei Codew�rtern an.

Beispiel 1: A="0111" B="0111".

Hier ist die Hammingdistanz 0, beide Codew�rter sind gleich.


Beispiel 2: A="1110" B="0001".

Hier ist die Hammingdistanz 4, beide Codew�rter sind komplett unterschiedlich.

Wir sehen hier auch gleich, dass die Hammingdistanz a priori nur f�r gleichlange Codew�rter definiert ist, 0 als kleinsten und die L�nge eines Codewortes als gr��ten Wert hat.

Die Ausgabe

Die Hammingdistanz des ersten Beispiels bekommen wir durch die Eingabe "4 0111 0111 =", die Ausgabe soll hier HD=0 lauten.

Beim zweiten Beispiel lautet die Eingabe beispielsweise "4 1110 0001 =", die Ausgabe entsprechend HD=4.

Wir haben auch einige Fehlerf�lle.

Entspricht die Eingabe nicht dem gew�nschtem Datentyp, soll ein '?' ausgegeben werden. Meines Erachtens ist dieser Fehler nur bei der Eingabe der Codel�nge m�glich.

Interessanter ist der allgemeine Fehlerfall "FALSCHE EINGABE". Er kann erfolgen bei

- Codel�nge < 1 oder Codel�nge > 4
- Anzahl Codew�rter < 2 oder Anzahl Codew�rter > 8
- wenn ein Wort eine andere als die gew�nschte Codel�nge hat
- wenn das Abschlu�symbol nicht einstellig ist
- wenn keine Bin�rzahlen (=nur aus 0 oder 1 bestehende) als Codew�rter angegeben werden

und erfolgt in meinem Programm auch bei jedem anderen m�glichen Fehler.
                     
1 | 2 | 3 | 4 | 5 | 6



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004