Более эффективный метод для этого расчета? - PullRequest
0 голосов
/ 17 ноября 2009
a = 218500000000

s = 6
f = 2
k = 49
d = k + f + s

r = a
i = 0

while (r >= d):
  r = r - d
  #print ('r = ',r)
  i = i+1
  #print ('i = ',i)

print (i)

Я думаю, что он делает то, что я ожидаю, но он слишком медленный, чтобы вычислить такое большое число, я ждал 5 минут, пока я напечатал (в то время как python использовал 100% ЦП для вычисления ..), но это не так гр. Есть ли более эффективный способ переписать этот кусок кода, чтобы я мог видеть, сколько итераций (i) требуется для выполнения?

Большое спасибо

Ответы [ 5 ]

4 голосов
/ 17 ноября 2009
r = (a % d)
i = (a / d)

Используйте по модулю и операторам деления .

Существует также функция divmod для вычисления обоих значений:

i, r = divmod(a,d)
4 голосов
/ 17 ноября 2009

Вы можете использовать i = a/d. : D

2 голосов
/ 17 ноября 2009

Разве это не то, что вы ищете?

0 голосов
/ 17 ноября 2009

Похоже, вы делаете усеченное деление для меня. То есть вы хотите узнать, сколько раз d входит в a, не зная остатка.

a = 218500000000
s = 6
f = 2
k = 49
d = k + f + s

i = a // d

print (i)
0 голосов
/ 17 ноября 2009

попробуй 3833333333.3333333333333333333333. АКА r / d.

...