Zaubertrick mit Modulo Von: kostja Datum: Mo. 14. März 2005 14:53:57 Thema: Mathematik
allo Leute,
Neulich war ich beim Kaffeetrinken gesessen, als ein Bekannter ein nettes kleines Zahlenspiel vorgeführt hat. Ich möchte es mit Euch spielen und natürlich will ich den Beweis, dass und wie es funktioniert, nicht schuldig bleiben.
1. Die Spielregeln
Ihr habt Euch also entschlossen mitzuspielen. Okay. Fangen wir an!
Denkt Euch eine natürliche Zahl aus und schreibt sie auf. Die Zahl muss mehr als zwei Dezimalstellen haben. Wieviele Stellen sie hat, bleibt Euch überlassen. Aber bedenkt, Ihr müsst noch was damit rechnen.
Nun bildet Ihr eine neue Zahl, in dem Ihr die Ziffern der ersten Zahl beliebig vertauscht (es muss eine echte Vertauschung sein, also z.B. keine Palindromzahlen)
und berechnet den Betrag der Differenz beider Zahlen.
Jetzt sucht Euch eine Ziffer aus dem Betrag aus, die ich - hier der Computer an meiner Stelle - erraten soll
und gebt die übrigen Ziffern in beliebiger Reihenfolge unten in das Textfeld ein und klickt auf "Rate!".
2. Das Spiel
Achtung: JavaScript erforderlich!
3. Der Trick
Erstaunt? Nun keine Sorge, ich werde Euch nicht im Dunkeln stehen lassen. Zuerst erzähl ich Euch mal, was das Programm überhaupt macht.
Hier ist der zugehörige Quellcode:
01 <script type="text/javascript"> 02 function rate() { 03 ziffern = document.getElementById("ziffern"); 04 zahl = ziffern.value; 05 if (isNaN(zahl) || zahl == "") { 06 alert(zahl + " ist kein gültiger Eintrag."); 07 return false; 08 } 09 alert("Die zu erratende Ziffer ist " 10 + (9-zahl%9) + ".\n\nÜberrascht?"); 11 return true; 12 } 13 </script>
Es ist ganz simpel. In der ersten und 13. Zeile stehen die HTML Tags, die einen Script-Bereich einleiten. Diese haben mit dem eigentlichen Programm nichts zu tun. In Zeile 2 beginnt die Funktion "rate", die immer dann ausgeführt wird, wenn Ihr im Spiel auf den Knopf "Rate!" drückt. Zeile drei und vier erfasst die Zahl, die Ihr in das obige Feld eingetippt habt. Die Zeilen fünf bis acht sind dafür verantwortlich, dass das Programm meckert, wenn nichts oder was falsches eingegeben worden ist. Das Wesentliche verbirgt sich hinter den Zeilen neun und zehn. (Das ist wie in der Raumfahrt oder? Soviel drumherum für das bisschen Nutzen. ;) ) In diesen Zeilen sorgt das Programm dafür, dass in einem Fenster neben dem Text "Die zu erratende Ziffer ist " und "Überrascht?" die Differenz aus 9 und der Modulodivision der eingegebenen Zahl ausgegeben wird. Ui! War das jetzt auch klar? Ich denke,mit Mathematik geht das um etliches einfacher:
n = eingebene Zahl % = Modulooperator Ausgabe = 9 - (n%9)
Okay? ;)
4. Die Mathematik
So, jetzt wisst Ihr wie das Programm funktioniert, aber einige wissen vlt. noch nicht, warum es funktioniert ;). Wie der Titel dieses Artikels schon andeutet, hat es etwas mit der Modulodivision zu tun. Und aus dem Programmquelltext wisst Ihr auch, dass es die Modulodivision durch 9 ist. Aber warum funktioniert das? Es ist ganz einfach:
Die Differenz aus zwei Zahlen, die aus exakt den gleichen Ziffern bestehen, ist immer durch 9 teilbar.
5. Der Beweis
\
Eine beliebige natürliche Zahl n, aus den Ziffern a, b, c bestehend, lässt sich auch schreiben als
\ll(1) n = 100*a + 10*b + 1*c
Wenn man von dieser Zahl eine Zahl k abzieht, die aus den gleichen Ziffern zusammengesetzt ist, deren Reihenfolge aber beliebig vertauscht ist, kann man die neue Zahl als
\ll(2) k = 100*b+10*a+1*c
schreiben.
Zieht man nun k von n ab, so folgt aus \ref(1) und \ref(2)
n - k = (100*a + 10*b + 1*c) - (100*b+10*a+1*c)
\ll(3) n - k = (100-10)*a + (10-100)*b + (1-1)*c
In \ref(3) sind aber die Klammern stets durch 9 teilbar, egal wie man die Zusammensetzung der Zahl k aus den Ziffern a, b, c wählt.
Dass dieses Prinzip nicht nur auf dreistellige Zahlen beschränkt ist, ist leicht einzusehen.
Wenn nun aus dieser Differenz eine Ziffer entfernt wird, wird die dadurch erhaltene Zahl nicht mehr durch 9 teilbar sein. Die Zahl, die von der Modulodivision auf die 9 fehlt, ist die entfernte Zahl.
Ich hoffe, es hat Euch Spaß gemacht meinen Artikel zu lesen. Ich wünsche Euch noch eine schöne Zeit auf dem Matheplaneten. Wir lesen voneinander *g*.