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
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))