Laufzeit verkürzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

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?
BlackJack

@_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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Außerdem kann es manchmal helfen den Profiler anzuwerfen, um zu sehen wie viel Zeit in welcher Funktion verbracht wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten