Kom igångKom igång gratis

Tidsmätning I

I föreläsningsslides såg du hur funktionen time.time() kan laddas in och användas för att mäta hur lång tid det tar att utföra en grundläggande matematisk operation.

Nu ska du använda samma strategi för att jämföra två olika metoder för att lösa ett liknande problem: beräkna summan av kvadraterna av alla positiva heltal från 1 till 1 miljon (1 000 000).

Precis som i videon jämför du två metoder – en som använder brute force och en som är matematiskt mer sofistikerad.

I funktionen formula används standardformeln

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

där N=1 000 000.

I funktionen brute_force loopar vi igenom varje tal från 1 till 1 miljon och lägger till det i resultatet.

Den här övningen är en del av kursen

Effektiv kodning med pandas

Visa kurs

Övningsinstruktioner

  • Beräkna resultatet med hjälp av funktionen formula().
  • Skriv ut den tid som krävdes för att beräkna resultatet med funktionen formula().
  • Beräkna resultatet med hjälp av funktionen brute_force().
  • Skriv ut den tid som krävdes för att beräkna resultatet med funktionen brute_force().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod