繁体   English   中英

在列表 python 上计算大数字的有效方法

[英]Efficient way to count big number on list python

计算Array中数字数量的有效方法是什么?

这是我的代码:

a = 1000000000000

simpan1 = []

for i in range(a):
    if i % 75 == 0 and i >= 100:
        hasil = i
        simpan1.append(hasil)
    else:
        continue

print("The amount of the number:", len(simpan1))

计算它花了很多时间,所以我希望有一种更快的方法来计算它。 谢谢!

您有从 0 到 (1000000000000 - 1) 的数字,您需要知道有多少数字大于或等于 100,除以 75 时没有余数。

您可以简单地通过将 (1000000000000 - 1) 除以 (999999999999) 除以 75 来执行此操作,这将简单地计算除以 75 时不会产生余数的数字数量,当然,您将忽略答案的小数部分。

现在您只需从最终答案中减去一个即可。

为什么?

因为您想要满足条件且大于或等于 100 的数字,并且您知道有一个数字小于 100 并且满足条件 75 本身,因此您从最终答案中减去它。

请注意:

当您将 999999999999 除以 75 时,它会计算 0 到 999999999999 之间可被 75 整除的数字的数量。

这段代码是等效的,而且速度更快:

a = 1000000000000
simpan1 = list(range(150, a, 75))
print("The amount of the number:", len(simpan1))

如果您不关心实际数字,这会更快:

a = 1000000000000
print("The amount of the number:", (a - 1) // 75 - 1)

你为什么不在这个问题上应用数学算法呢? 我们可以通过下面的公式来计算:

import math
result = math.floor((1000000000000)/75.0) - 1 #except 75

我希望这可以帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM