Inizia subitoInizia gratis

Misurare il tempo I

Nelle diapositive della lezione hai visto come caricare e usare la funzione time.time() per valutare il tempo necessario a eseguire un'operazione matematica di base.

Ora userai la stessa strategia per confrontare due metodi diversi che risolvono un problema simile: calcolare la somma dei quadrati di tutti i numeri interi positivi da 1 a 1 milione (1.000.000).

Come nel video, confronterai due approcci: uno a forza bruta e uno più sofisticato dal punto di vista matematico.

Nella funzione formula, usiamo la formula standard

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

dove N=1.000.000.

Nella funzione brute_force iteriamo su ciascun numero da 1 a 1 milione e lo aggiungiamo al risultato.

Questo esercizio fa parte del corso

Scrivere codice efficiente con pandas

Visualizza corso

Istruzioni dell'esercizio

  • Calcola il risultato del problema usando la funzione formula().
  • Stampa il tempo necessario per calcolare il risultato usando la funzione formula().
  • Calcola il risultato del problema usando la funzione brute_force().
  • Stampa il tempo necessario per calcolare il risultato usando la funzione brute_force().

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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))
Modifica ed esegui il codice