Eulerprobleme

Was ist Project Euler

Projekt Euler ist eine Webseite, auf der Problemstellungen aus dem Bereich der Mathematik und der Informatik zu finden sind. Einige Probleme kann man mit Papier und Bleistift angehen, die meisten aber erfordern einen cleveren Algorithmus und etwas Übung in einer Programmiersprache.

Die 25 Probleme der ersten Stufe sind noch relativ leicht zu lösen. Schwieriger wird es ab Stufe zwei. Bis dahin hat man allerdings schon so viel Spaß am Knobeln gehabt, so dass man nicht mehr aufhören möchte. An manchen Problemen kann man mehrere Tage sitzen, andere löst man in wenigen Minuten. Ein handelsüblicher Computer sollte die jeweilige Lösung innerhalb einer Minute ermittelt haben, vorausgesetzt, man hat einen zweckmäßigen Ansatz gewählt.

Wenn man eine pfiffige Lösung zu einem besonders kniffligen Problem gefunden hat, ist es üblich, den eigenen Lösungsweg zu erläutern. Dabei zeigt sich oft, dass ein guter Algorithmus in einer vermeintlich langsamen Sprache die Lösung schneller liefern kann, als ein mittelmäßiger in Java.

Dokumentierte Lösungen als Lern- und Lehrhilfe

An dieser Stelle möchten wir Lösungen für ausgewählte Eulerprobleme vorstellen und unter dem Gesichtspunkt Geschwindigkeit, Speicherverbrauch, Lesbarkeit und Erweiterbarkeit diskutieren.

Dazu richten wir uns nach der von Kent Beck aufgestellten Direktive: Make it work, make it right, make it fast. Das heisst, zuerst suchen wir nach der einfachsten oder der am einfachsten zu implementierenden Lösung, die das richtige Ergebnis liefert. Ist sie schnell genug und für Außenstehende leicht verständlich, können wir es dabei belassen. Oft bietet es sich aber an, den Code kompakter, schöner und lesbarer zu schreiben. Zuletzt schauen wir nach Optimierungsmöglichkeiten, indem wir das eigentliche Problem an andere Größenordnungen anpassen.