簡體   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