【发布时间】:2012-01-10 16:15:14
【问题描述】:
我目前使用此代码查找 gcd 和 lcm
def gcd(a, b):
while b != 0:
a, b = b, a%b
return a
def lcm(a, b):
result = a*b/gcd(a,b)
return result
但是,如果我想为数字列表执行此操作,例如[4,5,7,1,5,7,10,1,16,24] 等?我是否受限于循环?
【问题讨论】:
-
您可以将计算的值保存在某种哈希图中,并首先检查您是否已经计算了该值,如果您不需要重新计算它,否则您将不得不.
-
@Anton。此外,将所有中间结果也保存(缓存)在内存中,并在每次迭代时检查缓存。对于足够大的数字列表,这会更快。
-
我知道如何使用记忆分类器;我怎么能在这里使用它们?
-
该问题的答案虽然几乎提供了答案,但如果不是语言,那么它们指的是适当的算法。
标签: math greatest-common-divisor lcm