Измерение времени I
На слайдах лекции вы увидели, как загружать и использовать функцию time.time() для оценки времени выполнения базовой математической операции.
Теперь вы применёте ту же стратегию, чтобы сравнить два разных подхода к решению похожей задачи: вычислить сумму квадратов всех положительных целых чисел от 1 до 1 миллиона (1 000 000).
Как и в видео, вы сравните два метода: один основан на прямом переборе, другой — на математической формуле.
В функции formula используется стандартная формула
$$ \frac{N*(N+1)(2N+1)}{6} $$
где N = 1 000 000.
В функции brute_force выполняется перебор каждого числа от 1 до 1 миллиона с последовательным добавлением его к результату.
Это упражнение является частью курса
Эффективная работа с pandas
Инструкции к упражнению
- Вычислите результат задачи с помощью функции
formula(). - Выведите время, затраченное на вычисление результата функцией
formula(). - Вычислите результат задачи с помощью функции
brute_force(). - Выведите время, затраченное на вычисление результата функцией
brute_force().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))