更有效的计算方法?

发布于 2024-08-11 08:25:10 字数 311 浏览 3 评论 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% cpu 来计算..),但它没有。有没有更有效的方法来重写这段代码,以便我可以看到完成需要多少次迭代(i)?

非常感谢

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)

I think it does what I expect it to, but its way too slow to calculate such a large number, I waited 5 mins for i to print (while python used 100% cpu to calculate..), but it didn't. Is there a more efficient way of rewriting this piece of code so I can see how many iterations (i) it takes to complete?

Many thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

绝不服输 2024-08-18 08:25:10
r = (a % d)
i = (a / d)

使用模和除运算符

还有一个 divmod 函数可以将两者一起计算:

i, r = divmod(a,d)
r = (a % d)
i = (a / d)

Use the modulo and division operators.

There is also a divmod function to calculate both together:

i, r = divmod(a,d)
明媚如初 2024-08-18 08:25:10

您可以使用i = a/d。 :D

You can use i = a/d. :D

心凉怎暖 2024-08-18 08:25:10

您要找的不是一个部门吗?

Isn't a division what you're looking for?

夏天碎花小短裙 2024-08-18 08:25:10

尝试3833333333.3333333333333333333333。又名r / d

try 3833333333.3333333333333333333333. AKA r / d.

呆° 2024-08-18 08:25:10

看起来你正在对我做截断除法。也就是说,您想在不知道余数的情况下找出 d 进入 a 的次数。

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

i = a // d

print (i)

Looks like you are doing truncating division to me. That is, you want to find out how many times d goes into a without knowing the remainder.

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

i = a // d

print (i)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文