Difference between revisions of "TU Wien:Algebra und Diskrete Mathematik UE (diverse)/Übungen SS19/Beispiel 69"

From VoWi
Jump to navigation Jump to search
m
 
m
Line 6: Line 6:
 
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.
 
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.
 
</div>
 
</div>
 +
 +
{{Beispiel EAN}}
  
 
=== Zwei EAN-Codes unterscheiden sich an der Stelle mit Index j ===
 
=== Zwei EAN-Codes unterscheiden sich an der Stelle mit Index j ===

Revision as of 15:56, 3 November 2007

Im europäischen Artikelnummersystem EAN werden Zahlen mit 13 Dezimalziffern der Form <amsmath>a_1 a_2...a_{12} p </amsmath> verwendet. Dabei wird die letzte der 13 Ziffern, das ist die Prüfziffer p im EAN-Code so bestimmt, dass

<amsmath> a_1 + 3a_2 + a_3 + 3a_4 + ... + a_{11} + 3a_{12} + p \equiv 0 \text{ mod 10 }</amsmath>

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.

Vorlage:Beispiel EAN

Zwei EAN-Codes unterscheiden sich an der Stelle mit Index j

1. EAN-Code: <amsmath>S + kx_j \equiv 0 \text{ mod 10 }</amsmath>

2. EAN-Code: <amsmath>S + ky_j \equiv 0 \text{ mod 10 }</amsmath>

S ... Summe der übrigen Stellen (ist bei beiden Codes gleich)

Erläuterung: Jede Stelle wird entweder mit 1 oder 3 multipliziert, um den Beweis nicht zwei mal zu führen, arbeiten wir mit Konstante <amsmath>k \in \{1,3\}</amsmath>.


<amsmath>S + kx_j \equiv S + ky_j \text{ mod 10 }</amsmath>

<amsmath>S + kx_j - S - ky_j \equiv 0 \text{ mod 10 }</amsmath>

<amsmath>kx_j - ky_j \equiv 0 \text{ mod 10 }</amsmath>

<amsmath>k(x_j - y_j) \equiv 0 \text{ mod 10 }</amsmath>

Division durch k ist erlaubt, weil k und 10 teilerfremd sind.


Anmerkung: Zwei Zahlen a und b sind dann teilerfremd, wenn ihr ggT(a, b) = 1 ist.

Beispiele:

  • Die Zahlen 12 und 77 sind teilerfremd, denn ihre Primfaktorzerlegungen 12 = 2 · 2 · 3 und 77 = 7 · 11 enthalten keine gemeinsamen Faktoren.
  • Die Zahlen 15 und 25 sind nicht teilerfremd, denn in ihren Primfaktorzerlegungen 15 = 3 · 5 und 25 = 5 · 5 kommt 5 als gemeinsamer Faktor vor, der zugleich ggT(15; 25) ist.

Siehe auch http://de.wikipedia.org/wiki/Teilerfremd ( --Mnemetz 14:51, 15. Nov 2005 (CET))


<amsmath>x_j - y_j \equiv 0 \text{ mod 10 }</amsmath>

<amsmath>x_j \equiv y_j \text{ mod 10 }</amsmath>

daraus folgt: <amsmath> x_j = y_j</amsmath>

(weil <amsmath>x,y \in \{0,1,...,9\}</amsmath> und in dieser Menge gibt es nicht zwei Zahlen die beide kongruent 0 modulo 10 sind)


Zwei benachbarte Stellen x und y werden vertauscht

<amsmath>S + x + 3y \equiv S + 3x + y \text{ mod 10 }</amsmath>

<amsmath>S + x + 3y - S - 3x - y \equiv 0 \text{ mod 10 }</amsmath>

<amsmath>2y - 2x \equiv 0 \text{ mod 10 }</amsmath>

<amsmath>2y \equiv 2x \text{ mod 10 }</amsmath>

<amsmath>y \equiv x \text{ mod 5 }</amsmath>

daraus folgt: entweder <amsmath>x=y</amsmath> oder x und y unterscheiden sich um 5.


Diskussion über diese Lösung bitte unter http://www.informatik-forum.at/showthread.php?t=36355 führen.

Ergänzung: --Mnemetz 14:42, 15. Nov 2005 (CET)

Die Ziffern der Europäischen Artikel-Nummerierung sind auf jedem Produkt unter dem Strichcode zu finden. Dabei bezeichnen die ersten beiden Ziffern das Herkunftsland des Produktes. Die nächsten fünf Ziffern bezeichnen die Firma und die darauffolgenden fünf Ziffern die firmeninterne Produktbezeichnung. Die letzte Ziffer ist das Kontrollsymbol. Als Gewichte werden abwechselnd 1 und 3 gewählt:

  EAN       5  4   4  9  0  0   0  0  5  0  5  1       9
  Gewicht   1  3   1  3  1  3	1  3  1  3  1  3	
  Produkt   5  12  4  27 0  0	0  0  5	 0  5  3      Summe: 61

Mit diesem Verfahren werden nun alle Einzelfehler und fast alle Vertauschungsfehler erkannt. Unerkannt bleibt beispielsweise die Vertauschung von 8 und 3. Denn 1*8 + 3*3 = 17 und 1*3 + 3*8 = 27. Bei dieser Art von Codes gibt es keine Möglichkeit, sowohl Einzelfehler als auch Vertauschungsfehler mit Sicherheit zu erkennen.

Siehe auch: http://studhome.rrze.uni-erlangen.de/~snvivola/mathematisches.html