Tijd meten I
In de dia's van de les zag je hoe je de functie time.time() kunt importeren en gebruiken om te bepalen hoeveel tijd nodig is voor een eenvoudige wiskundige bewerking.
Nu ga je dezelfde aanpak gebruiken om twee verschillende methoden te vergelijken voor een soortgelijk probleem: bereken de som van kwadraten van alle positieve gehele getallen van 1 tot 1 miljoen (1.000.000).
Net als in de video vergelijk je twee methoden: één brute-force aanpak en één die wiskundig slimmer is.
In de functie formula gebruiken we de standaardformule
$$ \frac{N*(N+1)(2N+1)}{6} $$
waarbij N=1.000.000.
In de functie brute_force lopen we over elk getal van 1 tot 1 miljoen en tellen we het bij het resultaat op.
Deze oefening maakt deel uit van de cursus
Efficiënte code schrijven met pandas
Oefeninstructies
- Bereken het resultaat van het probleem met de functie
formula(). - Print de tijd die nodig is om het resultaat te berekenen met de functie
formula(). - Bereken het resultaat van het probleem met de functie
brute_force(). - Print de tijd die nodig is om het resultaat te berekenen met de functie
brute_force().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))