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