Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
просто добавить 1, то этой займет больше времени, чем само возведение в 200000 степень.
Возведение в степень заняло 24 мс, прибавление единицы — 0.024 мс, судя по вашему скриншоту. Так почему вы утверждаете, что прибавление заняло больше времени?
Быстрее, кстати, не стало. Total time во втором случае фальшивый, вы просто второй раз выводите время последней итерации.
if i < 11: бесполезен, range(11) последним числом вернет 10>>> list(range(11))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]d = 0 и d += i**200000 фактически просто прибавление i**200000 к нулю.Итого после исправления некоторых ошибок:
>>>
>>>
>>> d = 0
>>> total_2 = 0
>>>
>>> for i in range(1, 11):
... start = time()
... d += i**200000
... end = time()
... total_2 += end - start
... # print('Iteration {} lasts {}'.format(i, round(total_2, 6)))
...
>>> print(' \n End with total time {} \n'.format(round(total_2,3)))
End with total time 0.077
>>>
>>>
>>>
>>> from time import time # импорт модуля времени
>>>
>>>
>>> total_1 = 0
>>>
>>> def power_1(x):
... global total_1
... start = time()
... power = x**200000
... end = time()
... total_1 += end - start
... return round(total_1,6)
...
>>> # простые операции сложения, для того что бы посчитать отдельно время операции
... power_1(1) + power_1(2) + power_1(3) + power_1(4) + power_1(5) + power_1(6) + power_1(7) + power_1(8) \
... + power_1(9) + power_1(10)
0.308704
>>>
>>> print(' \n End with total time {} \n'.format(round(total_1,3)))
End with total time 0.078Тут бы еще поправить подсчет времени – сложение для больших чисел, как вы заметили, тоже требует времени, а оно тут не учитывается. Очевидно, что при исправлении ошибок код эквивалентен.
Ускорить сложные вычисления с минимальной загрузкой RAM