Zacznij terazZacznij za darmo

Mierzenie czasu I

Na slajdach wykładu zobaczyłeś(-aś), jak załadować funkcję time.time() i użyć jej do oceny czasu potrzebnego na wykonanie podstawowej operacji matematycznej.

Teraz użyjesz tej samej strategii, aby porównać dwie różne metody rozwiązania podobnego problemu: obliczenie sumy kwadratów wszystkich dodatnich liczb całkowitych od 1 do 1 miliona (1 000 000).

Podobnie jak w filmie, porównasz dwie metody: jedną opartą na podejściu siłowym i jedną bardziej wyrafinowaną matematycznie.

Funkcja formula korzysta ze standardowego wzoru

$$ \frac{N*(N+1)(2N+1)}{6} $$

gdzie N=1 000 000.

Funkcja brute_force iteruje po każdej liczbie od 1 do 1 miliona i dodaje ją do wyniku.

To ćwiczenie jest częścią kursu

Wydajne programowanie z pandas

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz wynik zadania, korzystając z funkcji formula().
  • Wyświetl czas potrzebny do obliczenia wyniku za pomocą funkcji formula().
  • Oblicz wynik zadania, korzystając z funkcji brute_force().
  • Wyświetl czas potrzebny do obliczenia wyniku za pomocą funkcji brute_force().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod