Medir el tiempo I
En las diapositivas de la lección, viste cómo se puede importar y usar la función time.time() para medir el tiempo que requiere realizar una operación matemática básica.
Ahora, usarás la misma estrategia para evaluar dos métodos distintos que resuelven un problema similar: calcular la suma de los cuadrados de todos los enteros positivos del 1 al 1 millón (1.000.000).
Igual que en el video, compararás dos métodos: uno de fuerza bruta y otro más sofisticado desde el punto de vista matemático.
En la función formula, usamos la fórmula estándar
$$ \frac{N*(N+1)(2N+1)}{6} $$
donde N=1.000.000.
En la función brute_force iteramos sobre cada número del 1 al 1 millón y lo sumamos al resultado.
Este ejercicio forma parte del curso
Escribir código eficiente con pandas
Instrucciones del ejercicio
- Calcula el resultado del problema usando la función
formula(). - Imprime el tiempo requerido para calcular el resultado usando la función
formula(). - Calcula el resultado del problema usando la función
brute_force(). - Imprime el tiempo requerido para calcular el resultado usando la función
brute_force().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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))