Método mais eficiente para este cálculo?
-
20-09-2019 - |
Pergunta
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)
Eu acho que faz o que eu espero, mas é lento demais para calcular um número tão grande, esperei 5 minutos para imprimir (enquanto Python usava 100% de CPU para calcular ..), mas não o fez. Existe uma maneira mais eficiente de reescrever esse código para que eu possa ver quantas iterações (i) são necessárias para concluir?
Muito Obrigado
Solução
r = (a % d)
i = (a / d)
Use o Módulo e operadores de divisão.
Há também uma função divmod para calcular os dois juntos:
i, r = divmod(a,d)
Outras dicas
Você pode usar i = a/d
. : D
Não é uma divisão o que você está procurando?
tentar 3833333333.3333333333333333333333
. Aka r / d
.
Parece que você está fazendo uma divisão truncadora para mim. Ou seja, você deseja descobrir quantas vezes D entra em um sem saber o restante.
a = 218500000000
s = 6
f = 2
k = 49
d = k + f + s
i = a // d
print (i)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow