[英]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.