ComenzarEmpieza gratis

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

Ver curso

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))
Editar y ejecutar código