Comece agoraComece grátis

Medindo o tempo I

Nos slides da aula, você viu como a função time.time() pode ser carregada e usada para avaliar o tempo necessário para executar uma operação matemática básica.

Agora, você vai usar a mesma estratégia para avaliar dois métodos diferentes para resolver um problema semelhante: calcular a soma dos quadrados de todos os inteiros positivos de 1 a 1 milhão (1.000.000).

Como no vídeo, você vai comparar dois métodos: um que usa força bruta e outro mais sofisticado matematicamente.

Na função formula, usamos a fórmula padrão

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

onde N = 1.000.000.

Na função brute_force percorremos cada número de 1 a 1 milhão e somamos ao resultado.

Este exercicio faz parte do curso

Escrevendo código eficiente com pandas

Ver curso

Instruções do exercicio

  • Calcule o resultado do problema usando a função formula().
  • Imprima o tempo necessário para calcular o resultado usando a função formula().
  • Calcule o resultado do problema usando a função brute_force().
  • Imprima o tempo necessário para calcular o resultado usando a função brute_force().

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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))
Editar e Executar Código