我有两个数字,x1和x2。对于一个数字y,我想计算的公因数x1并x2尽可能接近y。
x1
x2
y
是否有一种有效的算法?
我相信是时候重新表述我的问题了,变得更加清楚了 。这与整数无关…因此,假设我们有两个数字x1和x2。说,用户输入一个数字y。我要查找的是一个y'接近的数字y,x1 % y'并且x2 % y'非常小(0.02例如,小于,但可以将此数字称为LIMIT)。换句话说,我不需要一个最佳算法,而是一个很好的近似值。
y'
x1 % y'
x2 % y'
0.02
LIMIT
我感谢大家的时间和精力,真是太好了!
我相信没有已知的有效(多项式时间)算法可以解决此问题,因为从整数分解到此问题的多项式时间都有所减少。由于没有已知的用于整数分解的多项式时间算法,因此也不可能存在针对您的问题的已知算法,因为否则我们确实会有用于整数分解的多项式时间算法。
要查看其工作原理,假设您有一个要分解的数字n。现在,使用您想要的任何算法,找到最接近√n的n和n的公因数。由于n的任何非平凡因数都不能大于√n,因此这将找到(1)除以n的最大整数,或者找到(2)如果n为质数的数字1。然后,您可以将n除以该数字并重复以产生n的所有因子。由于n最多具有O(log n)个因数,因此对于您的问题,求解器最多需要多项式多次迭代,因此我们可以从整数分解到此问题的多项式时间减少。如上所述,这意味着,至少在公开文献中,没有解决该问题的已知有效经典算法。也许存在,但这将是非常重要的结果。
对不起,否定答案,希望对您有所帮助!