小编典典

寻找最接近某个值的公因数的有效算法?

algorithm

我有两个数字,x1x2。对于一个数字y,我想计算的公因数x1x2尽可能接近y

是否有一种有效的算法?


我相信是时候重新表述我的问题了,变得更加清楚了
。这与整数无关…因此,假设我们有两个数字x1x2。说,用户输入一个数字y。我要查找的是一个y'接近的数字yx1 % y'并且x2 % y'非常小(0.02例如,小于,但可以将此数字称为LIMIT)。换句话说,我不需要一个最佳算法,而是一个很好的近似值。

我感谢大家的时间和精力,真是太好了!


阅读 357

收藏
2020-07-28

共1个答案

小编典典

我相信没有已知的有效(多项式时间)算法可以解决此问题,因为从整数分解到此问题的多项式时间都有所减少。由于没有已知的用于整数分解的多项式时间算法,因此也不可能存在针对您的问题的已知算法,因为否则我们确实会有用于整数分解的多项式时间算法。

要查看其工作原理,假设您有一个要分解的数字n。现在,使用您想要的任何算法,找到最接近√n的n和n的公因数。由于n的任何非平凡因数都不能大于√n,因此这将找到(1)除以n的最大整数,或者找到(2)如果n为质数的数字1。然后,您可以将n除以该数字并重复以产生n的所有因子。由于n最多具有O(log
n)个因数,因此对于您的问题,求解器最多需要多项式多次迭代,因此我们可以从整数分解到此问题的多项式时间减少。如上所述,这意味着,至少在公开文献中,没有解决该问题的已知有效经典算法。也许存在,但这将是非常重要的结果。

对不起,否定答案,希望对您有所帮助!

2020-07-28