НачатьНачать бесплатно

Измерение времени 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))
Редактировать и запускать код