Вимірювання часу 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))