Măsurarea timpului I
În slide-urile lecției, ai văzut cum funcția time.time() poate fi importată și folosită pentru a evalua timpul necesar efectuării unei operații matematice de bază.
Acum, vei folosi aceeași strategie pentru a compara două metode diferite de rezolvare a unei probleme similare: calculează suma pătratelor tuturor numerelor întregi pozitive de la 1 la 1 milion (1.000.000).
Similar cu ce ai văzut în videoclip, vei compara două metode: una care folosește forța brută și una mai sofisticată din punct de vedere matematic.
În funcția formula, folosim formula standard
$$ \frac{N*(N+1)(2N+1)}{6} $$
unde N=1.000.000.
În funcția brute_force, parcurgem fiecare număr de la 1 la 1 milion și îl adăugăm la rezultat.
Acest exercițiu face parte din cursul
Scrierea codului eficient cu pandas
Instrucțiuni pentru exercițiu
- Calculează rezultatul problemei folosind funcția
formula(). - Afișează timpul necesar pentru a calcula rezultatul cu funcția
formula(). - Calculează rezultatul problemei folosind funcția
brute_force(). - Afișează timpul necesar pentru a calcula rezultatul cu funcția
brute_force().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))