Im europäischen Artikelnummernsystem EAN werden Zahlen mit 13 Dezimalziffern der Form a1 a2 ... a12 p verwendet. Dabei wird die letzte der 13 Ziffern, das ist die Prüfziffer p im EAN-Code so bestimmt, dass:
a1+3a2+a3+3a4+...+a11+3a12+p kongruent 0 mod 10
gilt. Man zeige, dass beim EAN-Code ein Fehler in einer einzelnen Ziffer stets erkannt wird, während eine Vertauschung von zwei benachbarten Ziffern genau dann nicht erkannt wird, wenn die beiden Ziffern gleich sind oder sich um 5 unterscheiden.
|
Hallo,
der erste Teil ist doch trivial.
Wenn ich in einer Zahl zwei Ziffern vertausche, die gleich sind, dann ändert sich die Zahl doch nicht, also ist auch die oben gebildete Summe unverändert.
Beim zweiten Teil müsstes du mal überlegen, warum sich der Rest der Summe der beiden Zahlen nicht ändert, wenn sie - wie oben gefordert - kombiniert werden.
Grüße
|
Hallo,
1. Aufgabe: Ein Fehler in einer einzelnen Ziffer wird stets erkannt.
Fall 1: Die falsche Ziffer steht an einer ungeraden Stelle (das schließt eine falsche Prüfziffer mit ein!)
Sei dies zunächst mal die erste Ziffer. Dann gilt für die falsche erste Ziffer, daß sie a1'=a1+d ist mit d ungleich Null (die Ziffer soll ja falsch sein) und -a1 kleiner gleich d kleiner gleich 9-a1 (soll ja eine Ziffer am Ende herauskommen). Dann gilt für die Summe:
a1'+3*a2+a3...+3*a12+p = d+a1+3*a2+a3...+3*a12+p
Die originale Summe ist kongruent 0 mod 10, damit ist diese modifizierte Summe kongruent d mod 10 (wen an dieser Stelle negative d's stören, der kann ja 2 Unterfälle unterscheiden, im anderen Unterfall steht dann hier "d+10" an Stelle von "d"). Da d weder Null noch +-10 sein kann (-a1 und 9-a1 als Schranken sind betragsmäßig immer kleiner 10!), wird obige Kongruenz nicht erfüllt und es wird erkannt, daß eine Ziffer falsch ist.
Für die anderen ungeraden Positionen zeigt man das analog.
Fall 2: Die falsche Ziffer steht an einer geraden Stelle
Sei dies zunächst mal die zweite Ziffer. Dann gilt für die falsche zweite Ziffer, daß sie a2'=a2+d ist mit d ungleich Null (die Ziffer soll ja falsch sein) und -a2 kleiner gleich d kleiner gleich 9-a2 (soll ja eine Ziffer am Ende herauskommen). Dann gilt für die Summe:
a1+3*a2'+a3...+3*a12+p = a1+3*d+3*a2+a3...+3*a12+p
Die originale Summe ist kongruent 0 mod 10, damit ist diese modifizierte Summe kongruent 3*d mod 10 (wen an dieser Stelle negative d's stören, der kann ja 3 Unterfälle unterscheiden, in den anderen Unterfällen steht dann hier "3*d+10" bzw. "3*d+20" an Stelle von "d"). Da d weder Null noch +-10 sein kann (-a2 und 9-a2 als Schranken sind betragsmäßig immer kleiner 10!) und 3 kein Teiler von 10 ist, wird obige Kongruenz nicht erfüllt und es wird erkannt, daß eine Ziffer falsch ist.
Für die anderen geraden Positionen zeigt man das analog.
2. Aufgabe: Das Vertauschen zweier benachbarter Ziffern wird erkannt, wenn diese Ziffern verschieden und ihre Differenz ungleich 5 ist. Sind die vertauschten Ziffern gleich (da ist das Ergebnis der Vertauschung ja gleich dem Original) oder unterscheiden sich die vertauschten Ziffern um 5, dann wird dieser Fehler nicht bemerkt.
Seien die benachbarten 2 Ziffern, die vertauscht wurden, zunächst mal die beiden ersten Ziffern. Dann gilt a1'=a2 und a2'=a1 und somit für die Summe:
a1'+3*a2'+a3+...+3*a12+p=a2+3*a1+a3+...+3*a12+p=2*a1-2*a2+a1+3*a2+a3+...+3*a12+p
Die originale Summe ist kongruent 0 mod 10, damit ist diese modifizierte Summe kongruent 2*a1-2*a2 mod 10 (wen an dieser Stelle negative Differenzen stören, der kann ja 3 Unterfälle unterscheiden, in de anderen Unterfällen steht dann hier "2*a1-2*a2+10" bzw. "2*a1-2*a2+20" an Stelle von "2*a1-2*a2").
Welche Werte kann diese Differenz annehmen:
Fall 1: a1=a2 bzw. |a1-a2|=0
Also ist 2*a1-2*a2=0. Der Fehler kann nicht gefunden werden (ist ja aber auch kein Fehler, den man irgendwie sehen könnte!)
Fall 2: a1 ungleich a2
Fall 2.1 |a1-a2|=5
|2*a1-2*a2|=|2*(a1-a2)|=2*|a1-a2|=2*5=10
Egal, ob nun 10 oder -10 herauskommt, die modifizierte Summe erfüllt die Kongruenz und der Fehler kann so nicht entdeckt werden.
Fall 2.2 |a1-a2| ungleich 5
|2*a1-2*a2|=|2*(a1-a2)|=2*|a1-a2|
Damit die Kongruenz erfüllt ist, muß der Betrag ein Vielfaches von 5 sein, denn die Primzahlzerlegung eines Vielfachen von 10 enthält immer mindestens einen Faktor 5. Da a1 und a2 Ziffern sind kommen als einzige Vielfache nur 0 (behandelt im Fall 1) und 5 (behandelt im Fall 2.1) in Frage. D.h. die Kongruenz ist in diesem Fall niemals erfüllt und der Fehler wird erkannt.
Für die anderen geraden Positionen zeigt man das analog (auch für die letzten beiden Positionen, die die Prüfziffer enthalten).
|