Unterhaltungsmathematik mit Python

Unterhaltungsmathematik ist die Beschäftigung mit mathematischen Fragestellungen zum Zweck des Zeitvertreibs. Das ist kein neues Phämonen, denn bereits im Japan des 16. Jahrhunderts erkannte man, dass Mathematik durchaus medidativen Character haben kann und erfand Sangaku, die sogenannte Tempelgeometrie. Viel später, mit Aufkommen der Heimcomputer in den 80'iger Jahren fand Mathematik auch Eingang in viele Wohnzimmer der westlichen Welt.

Warum Python?

Python ist eine Programmiersprache, die im Jahr 1991 von Guido van Rossum entwickelt wurde. Mit Python kann man schnell Computerprogramme schreiben und diese auf einer Vielzahl an unterschiedlichen Plattformen ausführen. Es is mittlererweile eine der bekanntesten und beliebtesten Programmiersprachen und es ist einfach zu erlernen. Der Grund, warum Python hier als Programmiersprache gewählt wurde ist, dass es der Erfahrung der Heimcomputerprogrammierung sehr nahe kommt.

Heimcomputer waren eine Klasse von Mikrocomputern, die in den 70iger Jahren des letzten Jahrhunderts aufkamen. Sie waren verhältnismäßig preiswert und wurden daher in den 80iger Jahren populär. In der Regel waren es 8 Bit Computer, deren Namen der ein oder andere vielleicht schon gehört hat: Atari XT, Amstrad CPC, C64, Apple II oder ZX Spectrum. In dieser Frühzeit der privaten Computernutzung war es üblich, dass man ein absolutes Minimum an Programmierfähigkeiten besitzen musste. Computerprogramme wurden oftmals als Quelltext in Zeitungen abgedruckt und mussten Seitenweise in den eigenen Computer eingegeben werden. Dabei lernte man nebenbei die Grundlagen der Programmierung kennen. Selbst wenn man Programme auf Diskette oder Kassette kaufen konnte, musste man zumindest die Befehle kennen um sie in den Hauptspeicher zu laden und anschliessend auszuführen.

Ein Amstrad CPC 464 Heimcomputer aus dem Jahr 1984. (Bild: Bill Bertram; CC BY-SA 2.5)

Heimcomputer waren praktisch standardisiert, alle Modelle einer Serie hatten die gleiche Grafik, waren gleich schnell und hatten das gleiche Betriebssystem. Wer ein Betriebssytemupdate wollte, musste einen Chip auf dem Board austauschen. Diese Standardisierung hatte einen Vorteil, denn es war einfach Programme zu schreiben, die auf allen Computern eines Herstellers oder zumindest einer bestimmten Serie des Herstellers liefen. Die Hürde zum Programmieren war viel niedriger als Heute. Mit wenigen Zeilen Quellcode konnte man auf dem Bildschirm Grafiken zeichnen. Viele Programmierer lernten mit diesen Geräten. Was vielen modernen Programmiersprachen fehlt, ist diese Einfachheit. Bei Python ist das anders, Python ermöglicht es, sich bei einem Programm auf die wesentliche Funktion zu konzentrieren ohne über hunderte Zeilen Quellcode für die Initialisierung das Grafik-Subsystems nachdenken zu müssen. Das ermöglicht einen deutlich einfacheren Einstieg in die Programmierung.

Programmierbeispiele

Game of Life

John Conways "Game of Life" (deutsch: Spiel des Lebens) ist ein zellularer Automat. Er zeigt, wie aus einer Simulation mit wenigen Regeln komplexe Muster entstehen können.

Das Chaosspiel

Das Chaosspiel ist ein Algorithmus zur Erzeugung von Fraktalen. Die hier umgesetzte Version erzeugt eine Vielzahl an Fraktalen mit einem iterativen Zufallsalgorithmus.

Das Sierpinsky Dreieck

Sich rekursiv selbst aufrufende Funktionen sind ein Weg Fraktale zu erzeugen. Der hier vorgestellte Algorithmus konstruiert das Sierpinsky Dreieck und weiterer interessante Fraktale.