Das Schachrätsel
Du siehst: Wer programmieren kann, kann damit sehr schnell und übersichtlich mathematische Aufgaben oder Rätsel lösen, die man mit Papier und Stift (oder auch Taschenrechner) nur sehr mühsam und langwierig hinbekommt, wenn überhaupt. (Je besser du Python beherrschst, desto hilfreicher kannst du es für die schnelle und clevere Lösung verschiedenster Aufgaben verwenden).
Die Geschichte ist uralt und den meisten Mathelehrern bekannt:
Ein König in Indien wollte den Erfinder des Schachspiels dafür belohnen, dass er so ein wunderschönes Spiel geschaffen hatte. Der Erfinder sollte sich einen guten Lohn dafür ausdenken. Er sagte: Nehmt ein Schachbrett und gebt mir ein Reiskorn für das erste Feld, zwei Reiskörner für das zweite, 4 für das dritte, 8 für das vierte usw. – auf jedem folgenden Feld doppelt so viele, bis alle 64 Felder voll sind.
Der König fühlte sich gekränkt und glaubte, der Lohn sei zu niedrig. Er hatte die Macht der mathematischen Zweierpotenzen unterschätzt. Denn auf den ersten Feldern landeten wirklich nur sehr wenige Reiskörner. Auf dem zehnten waren es immerhin noch überschaubare 512 – aber danach ging es immer gewaltiger aufwärts. Wie viele Reiskörner würde der Erfinder des Schachspiels insgesamt bekommen? Und wie viel wäre das in Gewicht, wenn 100 Reiskörner drei Gramm wiegen?
Jetzt zeigt sich, wie praktisch es ist, wenn man programmieren kann. Denn um die Aufgabe zu lösen, müssen wir gar nicht erst viele Mathekenntnisse in Potenzen usw. hervorholen. Wir lassen Python einfach alles genau so berechnen, wie es die Aufgabe sagt. Dazu brauchen wir zwei Variablen, nämlich die Menge Reiskörner auf dem aktuellen Feld, menge, und die Gesamtsumme aller Reiskörner, summe. Die menge ist am Anfang 1 (ein Reiskorn liegt auf dem ersten Feld), die summe ist 0. Nun brauchen wir nur noch eine Schleife, die 64 Mal durchgeht und die menge jedes Mal zur summe hinzuzählt und sie anschließend für das nächste Feld verdoppelt. Und das war’s dann.
Willst du es selbst versuchen? Dann einfach ran. Es ist nicht schwer.
Wenn du es korrekt geschrieben hast, sieht das Programm in etwa so aus:
menge = 1
summe = 0
repeat 64:
summe = summe + menge
menge = menge * 2
print "Anzahl der Reiskörner insgesamt:" , summe
Starte es, und du bekommst sofort das Ergebnis: Die Gesamtsumme beträgt unglaubliche 18446744073709551615 Reiskörner. Wow! Strukturiert sieht die Zahl so aus: 18.446.744.073.709.551.615 – und in Worten: 18 Trillionen, 446 Billiarden, 744 Billionen, 73 Milliarden, 709 Millionen, 551 Tausend und 615 Reiskörner.
Das Gewicht kannst du jetzt berechnen, indem du diese Zahl mal 0,03 g nimmst (so viel wiegt laut Wikipedia etwa ein Reiskorn). Das Gesamtgewicht aller Reiskörner beträgt demnach 553 Milliarden Tonnen! Auf Statistikseiten im Web kann man ermitteln, dass die jährliche Gesamternte von Reis weltweit ca. 480 Millionen Tonnen beträgt.
Das heißt, der König müsste dem Erfinder des Schachspiels mehr als die weltweite Reisernte von 1.000 Jahren aushändigen! Verblüffendes Ergebnis – aber korrekt. Und sehr einfach mit Python ermittelt!