Zeit messen I
In den Folien hast du gesehen, wie die Funktion time.time() geladen und verwendet werden kann, um die Zeit für eine einfache mathematische Operation zu messen.
Jetzt nutzt du die gleiche Strategie, um zwei unterschiedliche Methoden für ein ähnliches Problem zu bewerten: Berechne die Summe der Quadrate aller positiven ganzen Zahlen von 1 bis 1 Million (1.000.000).
Wie im Video vergleichst du zwei Methoden: eine mit „brute force“ und eine mathematisch elegantere.
In der Funktion formula verwenden wir die Standardformel
$$ \frac{N*(N+1)(2N+1)}{6} $$
wobei N = 1.000.000.
In der Funktion brute_force iterieren wir über jede Zahl von 1 bis 1 Million und addieren ihr Quadrat zum Ergebnis.
Diese Übung ist Teil des Kurses
Effizient mit pandas programmieren
Anleitung zur Übung
- Berechne das Ergebnis des Problems mit der Funktion
formula(). - Gib die benötigte Zeit für die Berechnung mit
formula()aus. - Berechne das Ergebnis des Problems mit der Funktion
brute_force(). - Gib die benötigte Zeit für die Berechnung mit
brute_force()aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Calculate the result of the problem using formula() and print the time required
N = 1000000
fm_start_time = ____
first_method = formula(N)
print("Time using formula: {} sec".format(time.time() - fm_start_time))
# Calculate the result of the problem using brute_force() and print the time required
sm_start_time = ____
second_method = ____(N)
print("Time using the brute force: {} sec".format(time.time() - sm_start_time))