Začněte nyníZačněte zdarma

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

Zobrazit kurz

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))
Upravit a spustit kód