2009-11-17 3 views
0
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) требуется для завершения?Более эффективный метод для этого расчета?

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

+0

Что вы на самом деле хотите, чтобы это сделать? Что вы рассчитываете? – Jimmeh

+1

i, r = divmod (a, d) – Miles

+0

Уверенный выглядит как домашнее задание. –

ответ

4
r = (a % d) 
i = (a/d) 

Используйте modulo and division operators.

Существует также функция divmod вычислить оба вместе:

i, r = divmod(a,d) 
+0

+1 для однострочного. :-D – NawaMan

2

Разве это не подразделение, что вы ищете?

4

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

+1

И 'r = a% d'. – NawaMan

+0

О, деление быстрее, чем сложение/вычитание? Хотелось бы знать, почему! :) – 3zzy

+0

Получил ответ кстати, 3833333333.33. Тем не менее, хотелось бы знать, почему разделение происходит быстрее? – 3zzy

0

попытка 3833333333.3333333333333333333333. AKA r/d.

0

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

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

i = a // d 

print (i) 

 Смежные вопросы

  • Нет связанных вопросов^_^