Ich arbeite mich gerade durch die Projekt Euler Probleme. Oft habe ich ein Problem gelöst, das Errechnen der Lösung dauer jedoch solange, dass ich es nicht nachprüfen kann.
Gibt es allgemeine Tipps, Sachen die oft helfen, um die Laufzeit erheblich zu verbessern?
Laufzeit verkürzen
@_nohtyp_: Einen anderen, besseren Algorithmus verwenden. Insbesondere bei Project-Euler kann es helfen das Problem anders anzugehen, weil viele Probleme mit Nachdenken auch ohne Rechner, also nur mit Stift und Papier lösbar sind, wenn man heraus bekommt welche mathematischen „Kniffe” man anwenden kann. Project Euler soll ja nicht den Rechner herausfordern, wie schnell der eine „brute force”-Lösung durchrechnen kann, sondern den Programmierer, einen nicht allzu simpel gestrickten Algorithmus zu finden.
Zum Beispiel beim ersten Problem alle Zahlen kleiner als 1.000 aufzusummieren die durch 3 oder 5 teilbar sind, kann man zum Beispiel alle Zahlen von 0 bis 999 testen ob sie durch 3 oder 5 teilbar sind, und falls ja sie zum Ergebnis addieren. Mit ein bisschen Nachdenken kann man das aber auch als geschlossene Formel ausdrücken, ganz ohne Schleife, und damit unabhängig ob man nun 1.000 oder 1.000.000 als Grenze nimmt.
Zum Beispiel beim ersten Problem alle Zahlen kleiner als 1.000 aufzusummieren die durch 3 oder 5 teilbar sind, kann man zum Beispiel alle Zahlen von 0 bis 999 testen ob sie durch 3 oder 5 teilbar sind, und falls ja sie zum Ergebnis addieren. Mit ein bisschen Nachdenken kann man das aber auch als geschlossene Formel ausdrücken, ganz ohne Schleife, und damit unabhängig ob man nun 1.000 oder 1.000.000 als Grenze nimmt.