Мне нужно было рассчитать примерно, сколько времени потребуется компьютеру avg для запуска этого кода, предполагая, что скорость цикла является линейной (мой учитель сказал мне предположить это, Я знаю, что это не так, но мы новички так ..):Как долго время работы кода в python
num = 2**100
cnt = 0
import time
t0 = time.clock()
for i in range(num):
cnt = cnt+1
t1 = time.clock()
print("running time: ", t1-t0, " sec")
Я ждал 3 часа и ничего не получил, так как люди советовали мне делать, я вычислил для меньшего ввода : 2**20
. Это заняло 0.24478681215692052 секунд.
Теперь я попытался продолжить вычисление двумя способами, которые, как я думаю, должны получить мне ТАКОЙ результат, но это не так.
если я предполагаю, что скорость цикла является линейным, чтобы вычислить
2**100
я просто вычислить(0.24478681215692052)^5
, потому что(2**20)**5 = 2**100
.результат я получил: 0.000878901251447358 секунд (что на самом деле не логично)
Я попробовал другой путь:
2**20
- 0,24478681215692052 сек2**100
-?
и умножать, как это:
2**100 * 0.24478681215692052/2**20
и получил: 296101054897497890198453.29788130608283648 секунд с помощью this calculator for big numbers.
Как это возможно, что у меня есть 2 разных ответа? и не кажутся действительно логичными?
'если я предполагаю, что скорость цикла является линейным, чтобы вычислить 2 * 100 Мне просто нужно вычислить (0.24478681215692052)^5, потому что (2 * 20) * 5 = 2 ** 100' Это не правильный алгебраический расчет. –
2 ** 20 = 0.24478681215692052, теперь мы^5 обе стороны. почему это не так? – CnR
'2 ** 20 = 0.24478681215692052' Верно ли, что 2^20 ** равно ** .2447? Ты уверен? –