【发布时间】:2011-02-03 11:26:34
【问题描述】:
计算 n 个数的最大公约数的最快方法是什么?
【问题讨论】:
-
递归查找 GCD 是已知最快的方法。你想要某种特殊的优化吗?
-
@Gunner:问题是关于超过 2 个参数的 GCD。
-
我能想到的所有方法都没有使用 gcd(a,b,c)=gcd(gcd(a,b),c) 较慢的事实。
-
你为什么要问?使用
gcd(a,b,c)=gcd(gcd(a,b),c)是最好的方法,通常比使用例如分解要快得多。事实上,对于多项式,我们首先使用gcd和导数来查找多次出现的因子。 -
我可能会尝试通过计算常见的尾随零来找到 数字表示的基数的最大共同幂,然后从集合中第二小的数字中取余数按最小 - 等等,这只是从最小到最大的 GCD。嗯。寻找 Lehmer 和 为什么 矩阵乘法有帮助。
标签: algorithm math greatest-common-divisor