Mathematik: Wie? Dazu gibt es kein Buch?
Released by matroid on Mo. 22. Oktober 2007 10:13:29 [Statistics]
Written by Han-Xian - 3006 x read [Outline] Printable version Printer-friendly version -  Choose language   
Mathematik

\(\begingroup\) So stand ich schon ein paar mal im Buchladen. Die ISBN ist dank meiner Schrift nicht mehr entzifferbar
und den Titel des Buches habe ich auch nicht mehr parat. Daher stellte sich mir die Frage:
"Woher weiß denn der Computer, dass meine Nummer verkehrt ist?"
Und weil mich das so interessiert hat, habe ich mit einer Untersuchung der Plausibilität von ISBN und EAN bei Jugend forscht teilgenommen.
Und damit alle was von meinen Erkenntnissen haben, habe ich diesen Artikel geschrieben.


ISBN

Der Aufbau einer ISBN ist ziemlich simpel. Die ISBN-10 besteht aus 10 Ziffern, die ich z_(1),..., z_10 nenne. z_1 ,..., z_9 können alle Ziffern sein, bei z_10 allerdings kann zusätzlich noch X für die 10 stehen. Die ISBN (International Standard Book Number) ist plausibel, wenn \breakalign sum(z_i*(11-i),i=1,10)==0 mod 11 \breakalign gilt. Nun ist es interessant, ob eine Zahl erkannt wird, bei der eine Ziffer verkehrt oder zwei Ziffern vertauscht eingeben werden.

Falsche Eingabe einer Ziffer:

Satz 1:

Die falsche Eingabe einer beliebigen Ziffer wird immer erkannt.

Annahme:

Es gibt zur Ziffer z_i eine Ziffer x_i, so, dass z_i != x_i gilt, wobei die gesamte Nummer plausibel bleibt.

Beweis:

Es gilt: z_i * (11-i) == a mod 11 Aus der Annahme folgt: x_i * (11-i) == a mod 11 Das lässt folgenden Schluss zu: z_i * (11-i)- x_i * (11-i) == 0 mod 11 <=> (z_i - x_i) * (11-i) == 0 mod 11 \blitz Da wir uns in einem Integritätsring befinden, welcher natürlich nullteilfrei ist, ist der Widerspruch leicht zu sehen. (z_i - x_i) oder (11-i) müssten ein Vielfaches von 11 sein, aber da sie es nicht sein können, kann man daraus schließen, dass eine falsche Eingabe einer beliebigen Ziffer immer erkannt wird.
Vertauschung zweier verschiedenen Ziffern:

Satz 2:

Die Vertauschung zweier verschiedener Ziffern wird immer erkannt.

Annahme:

Es gibt zwei Ziffern z_i und z_(i+1), so, dass z_i != z_(i+1) gilt, wobei die gesammte Nummer bei Vertauschung der beiden Ziffern plausibel bleibt.

Beweis:

Es gilt: z_i * (11-i) + z_(i+1) * (10-i)== a mod 11 Aus der Annahme folgt: z_(i+1) * (11-i) + z_i * (10-i)== a mod 11 Das lässt folgenden Schluss zu: z_i(11-i)+ z_(i+1)(10-i)-z_(i+1)(11-i)-z_i(10-i)== 0 mod 11 <=>(z_i-z_(i+1))(11-i)+(z_(i+1)-z_i)(10-i)== 0 mod 11 <=>(z_i-z_(i+1))(11-i)-(z_i-z_(i+1))(10-i)== 0 mod 11 <=>(z_i-z_(i+1))(11-i-10+i)== 0 mod 11 <=>(z_i-z_(i+1))(1)== 0 mod 11 \blitz Hier ist wie oben wieder wichtig, dass sowohl (z_i-z_(i+1)) als auch 1 keine Vielfachen von 11 sein können. Die Vertauschung nicht benachbarter Zahlen kann man analog beweisen.

Simpler Pascalcode zur Überprüfung einer ISBN

Variablen:
  Zahl     :String;
  Laenge,i:Byte;
  Ergebnis:Integer;

Programm:
  Zahl:=edit1.text+edit2.text+edit3.text;
  Laenge:=strlen(pchar(Zahl));

  For i:=1 to laenge do
      Begin
           Ergebnis:=strtoint(Zahl[i])*(11-i)+Ergebnis;
      End;

  if (edit4.text='x') or (edit4.text='X') then
      edit4.text:='10';

  Ergebnis:=Ergebnis+strtoint(edit4.text);

  if Ergebnis mod 11 =0 then
      showmessage ('Die ISBN würde so akzeptiert werden.')
  else
      showmessage ('Sie müssen sich bei der Eingabe der ISBN vertan haben.');




EAN

Der Aufbau einer EAN ist ziemlich simpel. Die EAN besteht aus n Ziffern, die ich z_1,...,z_n nenne. z_n ist die Prüfziffer, wie bei der ISBN z_10 . Die EAN (European Article Number) ist plausibel, wenn z_n+sum(z_(n-i)*((i*2+1) mod 4),i=1,n-1) == 0 mod 10 gilt. Auch hier ist es interessant einmal die Vertauschung zweier Ziffern zu betrachten, wobei die Vertauschung zweier Ziffer, die entweder beide mit 1 multipliziert oder 3 werden offensichtlich nicht erkannt werden kann.

Satz 3:

Es wird nicht jede Vertauschung zweier Zahlen bei der EAN erkannt.

Beweis:

Man nehme zwei Ziffern z_i, z_x mit z_i != z_x und (2i-1) mod 4 !== (2x-1) mod 4. Damit die Zahl der Plausibilitätsprüfung standhält muss folgendes gelten: 3*z_i + z_x == a mod 10 und 3*z_x + z_i == a mod 10 Dann muss auch folgendes gelten: 3*z_i + z_x - 3*z_x - z_i == 0 mod 10 <=>2(z_i-z_x) == 0 mod 10 Wie man schnell sieht, gilt dies solange (z_i-z_x) entweder 0, 5 oder -5 ist. Wobei die Ziffern bei (z_i-z_x)=0 entgegen der Vorraussetzung gleich wären.

Simpler Pascalcode zur Überprüfung einer EAN

Variablen:
  Zahl     :String;
  Laenge,i:Byte;
  Ergebnis:Integer;

Programm:
  Zahl:=edit5.text;
  Laenge:=strlen(pchar(Zahl));
  l:=0;m:=0;

  For i:=1 to (laenge-1) do
      Begin
           If i mod 2= 1 then
             Begin
                 Ergebnis:=Ergebnis+strtoint(Zahl[i])*1;
                 inc(l);
             End
           else
             Begin
                 Ergebnis:=Ergebnis+strtoint(Zahl[i])*3;
                 inc(m)
             End;
      End;

  Ergebnis:=Ergebnis+strtoint(Zahl[laenge]);

  if Ergebnis mod 10 =0 then
      showmessage ('Die EAN würde so akzeptiert werden.')
  else
      showmessage ('Sie müssen sich bei der Eingabe der EAN vertan haben.');




So. Das wäre geschafft. Mein erster Artikel ist fertig und natürlich würde ich mich sehr über Kritik freuen.
Einen schönen Tag wünscht euer
Han-Xian
\(\endgroup\)
Get link to this article Get link to this article  Printable version Printer-friendly version -  Choose language     Kommentare zeigen Comments  
pdfFür diesen Artikel gibt es keine pdf-Datei


Arbeitsgruppe Alexandria Dieser Artikel ist im Verzeichnis der Arbeitsgruppe Alexandria eingetragen:
: Mathematik :: Kongruenzen :: Angewandte Mathematik :: Interessierte Studenten :: Leicht verständlich :
Wie? Dazu gibt es kein Buch? [von Han-Xian]  
Ein Überblick über die ISBN und EAN und die Eigenschaften dieser Nummern.
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
 
Aufrufzähler 3006
 
Aufrufstatistik des Artikels
Insgesamt 4 externe Seitenaufrufe zwischen 2012.06 und 2014.11 [Anzeigen]
DomainAnzahlProz
http://google.de375%75 %
http://www.bing.com125%25 %

[Top of page]

"Mathematik: Wie? Dazu gibt es kein Buch?" | 6 Comments
The authors of the comments are responsible for the content.

Re: Wie? Dazu gibt es kein Buch?
von: marek am: Mo. 22. Oktober 2007 12:27:23
\(\begingroup\)wusste garnicht, dass in der isbn soviel drin steckt. eine sehr gute lösung und sicher gibt es viele weitreichende anwendungen! der artikel ist auch leicht zu verstehen! gruss marek\(\endgroup\)
 

Re: Wie? Dazu gibt es kein Buch?
von: valentin am: Mo. 22. Oktober 2007 13:44:54
\(\begingroup\)Hallo, Vertauschungen sind bei der EAN weniger ein Problem, da diese Codes in der Praxis von Barcode Scannern eingelesen werden. -- Valentin \(\endgroup\)
 

Re: Wie? Dazu gibt es kein Buch?
von: Soral am: Mo. 22. Oktober 2007 15:40:35
\(\begingroup\)[quote]Auch hier ist es interessant einmal die Vertauschung zweier Ziffern zu betrachten, wobei die Vertauschung zweier Ziffer, die entweder beide mit 1 multipliziert oder 3 werden offensichtlich nicht erkannt werden kann. [/quote] Wie sollte man denn auch ne Multiplikation mit 1 erkennen?? 😉 \(\endgroup\)
 

Re: Wie? Dazu gibt es kein Buch?
von: Juergen am: Mo. 22. Oktober 2007 18:15:41
\(\begingroup\)Hi, Schöner Artikel. Vielleicht eine Richtigstellung Ich denke du meinst das Richtige, aber bei der EAN wird die letzte Stelle vor der Prüfziffer mit 3 multipliziert und dann nach vorngehend abwechselnd mit 1, dann mit 3 usw. Das stimmt mit deiner Angabe zumindest bei EAN-8 (also 8-stelligen EAN's nicht überein, zumindest lese ich es so) siehe auch hier (Wikipedia) @soral: gemeint war die Vertauschung von Ziffern, die zur Prüfzifferberechnung mit dem gleichen Faktor multipliziert werden Gruß Jürgen\(\endgroup\)
 

Re: Wie? Dazu gibt es kein Buch?
von: Han-Xian am: Mo. 22. Oktober 2007 19:48:28
\(\begingroup\)@valentin: Natürlich lesen das Scanner, aber wenn die das mal nicht können, dann ist das Geschrei groß *g*. Ich hab eine Verkäuferin erlebt, die hat 5min lang die falsche Nummer eingegeben. @Juergen: Du hast natürlich recht. Ich hab von links angefangen und für die üblichen EAN funktioniert das auch. Aber das gilt nur bei einer ungeraden Länge. Jetzt hab ich die Summe mit den Ziffern von rechts nach links gebildet. Jetzt funktioniert's. Da mein Pascalcode eigentlich für EAN-13 und EAN-11 gedacht ist, lasse ich den so. Aber vielen Dank, ich habe das vorher immer überlesen. Vielen Dank an Matroid, der meinen Änderungswunsch so schnell ausgeführt hat. Gruß Sebastian P.s.: Ich würde mich auch sehr über Kritik an der mathematischen Notation freuen. Wenn ich mal in die Gelegenheit kommen sollte einen zweiten Artikel zu schreiben, dann möchte ich das natürlich besser machen.\(\endgroup\)
 

Re: Wie? Dazu gibt es kein Buch?
von: robbe am: So. 13. Januar 2008 18:23:28
\(\begingroup\)Ein schöner und sehr übersichtlich gestalteter Artikel 😄 \(\endgroup\)
 

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]