用于发现GCD的蛮力和欧几里德算法之间的差异

时间:2013-04-29 01:03:08

标签: algorithm brute-force greatest-common-divisor

为什么用于查找GCD的连续整数检查算法被认为是暴力,但欧几里得算法不是?我对此感到困惑。是因为我们一个接一个地检查吗?

2 个答案:

答案 0 :(得分:2)

强力算法尝试每个可以尝试的候选解决方案,看看哪个适合,并将其结果作为答案返回。例如,蛮力GCD算法将从两个数字中较小的一个开始,并继续向下1,逐一检查每一种可能性。

相比之下,欧几里德算法并没有逐一进行:它会产生跳跃,有时会产生非常重要的跳跃。此外,它没有检查每个可能的数字是每个步骤的GCD问题的解决方案:它的结束条件与典型的蛮力解决方案有很大不同,后者是检查当前候选是否是问题的解决方案,当答案为“是”时停止。欧几里德算法检查不同的条件,即b != 0,以决定是否继续。

这两个区别(大步和不同的停止条件)使欧几里得算法与强力算法不同。

答案 1 :(得分:0)

蛮力搜索涉及尝试每种(合理的)可能性。欧几里德算法只检查这些可能性的一小部分。