»Rechnen mit gigantischen Zahlen«: Über Geschwindigkeit in der Mathematik
Wie man zwei Zahlen addiert beziehungsweise miteinander multipliziert, lernt man bereits in der Grundschule. Das Schema für das schriftliche Multiplizieren sieht – von Varianten wie der Gelosia-Multiplikation abgesehen – in einigen Ländern zwar etwas anders aus als in Deutschland, aber im Prinzip ist es überall gleich.
»Rechnen mit gigantischen Zahlen« beschäftigt sich nun mit der Frage, wie man zwei Zahlen möglichst schnell miteinander multiplizieren kann – am Anfang sind es zwei 4-stellige Zahlen, am Ende handelt es sich in der Tat um »gigantische« Zahlen. Der Autor Manuel Kauers ist Professor für Algebra an der »Johannes Kepler Universität Linz« und Verfasser zahlreicher Schriften zu seinem Schwerpunktfach, der Computeralgebra, die Mathematik und Informatik miteinander verbindet. Und diese Verbindung wird im Buch durchgängig thematisiert, auch in den etwas knappen Literaturhinweisen nach jedem Kapitel. Auf der Rückseite des Einbands findet man den Vermerk »auch Schülerinnen und Schüler ab Ende der Mittelstufe können den Text gut lesen«. Eine solche Aussage mag zwar die Zahl der Käufer erhöhen, erscheint aber irreführend, denn sehr schnell verlässt der Autor den elementaren Bereich des schulischen Niveaus.
Zweifelsohne würde es sich aber lohnen, das bereits im alten Ägypten verwendete Verfahren des wechselseitigen Halbierens und Verdoppelns der Faktoren auch im Schulunterricht zu behandeln (zumindest als Zusatzstoff) – es hat nämlich etwas mit dem Rechnen in einem anderen Zahlsystem zu tun (Dualsystem). Aus historischer Sicht interessant und entsprechend der Zielrichtung des Buchs nachvollziehbar ist das Berechnen eines Produkts von Zahlen mithilfe von Logarithmen. Warum der Autor diese Methode behandelt, die in früheren Generationen noch schulischer Standard war, wird sehr bald deutlich.
Schneller rechnen
Das erste Kapitel des Buchs (»Das dauert alles zu lange«) informiert nicht nur über mögliche Berechnungsoptionen, nach und nach rückt die zentrale Frage in den Mittelpunkt: Wie groß ist der zeitliche Rechenaufwand, wenn man nicht zwei 4-stellige Zahlen miteinander multipliziert, sondern zwei »gigantische« Zahlen? Es geht hierbei um Größenordnungen, die für Normalverbraucher nicht alltäglich sind, etwa das Multiplizieren von Zahlen mit 1012 (= Million x Million) Ziffern.
Das Verdoppeln der Stellenzahl der Faktoren bedeutet für das herkömmliche Verfahren bereits (ungefähr) eine Vervierfachung der Rechenoperationen – der Aufwand für die Multiplikation von Zahlen wächst hier also quadratisch mit der Stellenzahl! Da ist es schon relevant, dass der Aufwand beim Rechnen mit Logarithmen nahezu nur linear wächst; und fast noch erstaunlicher erscheint, dass ein bereits von den Babyloniern angewandter Rechentrick beim Multiplizieren ähnlich effizient war wie das Logarithmieren. Beide Verfahren haben allerdings den Nachteil, dass man bei ihrer Anwendung auf Tabellenwerke angewiesen ist.
Karatsubas Trick
Dass es auch schneller geht als mit quadratischer Zunahme des Aufwands, erfahren wir im zweiten Kapitel. Denn Anatoli Karatsuba, ein Student Kolmogorovs, hatte einen genialen Einfall, wie man durch Zerlegung der Faktoren in zwei Summanden und mithilfe eines Rechentricks, der dem der Babylonier vergleichbar ist, den Aufwand verringern kann (später im Buch erfährt man, dass die Konstrukteure der Computersprache Python diesen Trick in ihre Programmierung integriert haben). Die Idee Karatsubas beruht im Kern auf dem Gedanken »Teile und Herrsche«; in einem Teilkapitel mit dieser Überschrift erläutert Kauers die Anwendung dieses Prinzips auch im Zusammenhang mit Sortieralgorithmen für Listen und mit dem Divisionsalgorithmus. Eine Reflexion des bisher Betrachteten schließt das zweite Kapitel ab.
Das dritte Kapitel »Andere Arithmetiken« beschäftigt sich mit dem Rechnen und den Rechengesetzen in verschiedenen Zahlenmengen – bis hin zu Zahlringen wie 𝑍 [ 1 / 2 ]und der Menge der komplexen Zahlen, um schließlich bei Restklassen wie sowie Polynom- und Matrizenringen anzukommen. (Erfreulich am Rande: Der Trick von Karatsuba lässt sich auch bei der Matrizenmultiplikation anwenden.) Das hört sich zwar alles nach Vorlesungsstoff des dritten und vierten Semesters an, wird aber vom Autor anhand von Beispielen durchaus nachvollziehbar ausgeführt.
Über Kehrmatrix und Einheitswurzeln zur aktuellen Forschung
Das vierte Kapitel »Mathematische Schatten« fängt wieder harmlos an. Der Autor erinnert an die Zerlegung natürlicher Zahlenin Primfaktoren und an das Kürzen von Brüchen, erläutert dann den euklidischen Algorithmus sowie dessen Darstellung in Matrixform, um über die Bestimmung der Kehrmatrix schließlich zur Rekonstruktion von Zahlen mithilfe des chinesischen Restsatzes zu gelangen.
Da verwundert es nicht, dass das fünfte Kapitel (»Jetzt aber schnell«) mit dem Satz beginnt: »Schön, dass Sie noch dabei sind.« Es führt über das Rechnen mit Einheitswurzeln und Fourier-Transformationen zum aktuellen Stand der Forschung. Während das Python-Programm für die Multiplikation zweier Zahlen mit 1012 Ziffern fünf Jahre benötigen würde, schafft es die SageMath-Software, die auf Fourier-Transformation beruht, in einem Tag. Das Buch endet mit einem »Fazit« und einem hilfreichen Stichwortverzeichnis.
Mein Fazit: Der Autor beweist großes Geschick dabei, auch komplizierte Sachverhalte anschaulich darzustellen. Dies erfolgt meistens beispielgebunden – weitere Beispiele und kleinere Schrittfolgen hätten jedoch den infrage kommenden Leserkreis noch etwas vergrößern können. Der Aufbau des Buchs ist didaktisch gelungen, der Spannungsbogen wird stets aufrechterhalten. Insgesamt ein spannendes Werk, das seine Leser fordert. Möglicherweise ist es auch geeignet, mathematisch interessierte Oberstufenschüler neugierig auf ein Studium der Mathematik oder Informatik zu machen.
Schreiben Sie uns!
Beitrag schreiben