Měření času I
V přednáškových slidech jsi viděl/a, jak lze načíst funkci time.time() a použít ji k měření času potřebného k provedení základní matematické operace.
Nyní použiješ stejný postup k porovnání dvou různých metod řešení podobného problému: vypočítej součet čtverců všech kladných celých čísel od 1 do 1 milionu (1 000 000).
Podobně jako ve videu porovnáš dvě metody – jednu hrubou silou a jednu matematicky sofistikovanější.
Funkce formula používá standardní vzorec
$$ \frac{N*(N+1)(2N+1)}{6} $$
kde N = 1 000 000.
Funkce brute_force prochází smyčkou každé číslo od 1 do 1 milionu a přičítá ho k výsledku.
Toto cvičení je součástí kurzu
Psaní efektivního kódu s pandas
Pokyny k cvičení
- Vypočítej výsledek pomocí funkce
formula(). - Vypiš čas potřebný k výpočtu výsledku pomocí funkce
formula(). - Vypočítej výsledek pomocí funkce
brute_force(). - Vypiš čas potřebný k výpočtu výsledku pomocí funkce
brute_force().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))