您的位置:首页 > 其它

文章标题

2016-03-13 14:58 288 查看
***二元方程的求解问题***
在平常的java算法题目中,二元不定方程的求解问题一向不少,有时候如果对于解的范围较小的时候,我们通常可以使用暴力破解的方式,使用双重  for 循环就可以得到答案,但是如果解的范围较大的情况下,如 超过10000 这时候如果还使用这种方法的话,运行的时间和效率就会非常的低,其实再数学中,数学家们对于二元方程的研究已经比较的深入的透彻, 例如我们在小学或中学中都知道,二元方程都可以化解为 a*X + b*Y = c 的形式, 在进一步我们可以把其变化为X = (c - b*Y)/a ,使用单层循环,控制当Y取最小的时候,使这个式子成立。

例如:X,Y均取整数
3*X + 4*Y = 7; 化简得到 X = (7 -4*Y)/3 故可得到此式子成立的最小Y值是1 ,X 为1 既 X0 = 1 , Y0 = 1;  这时通过 X = X0 + at; Y = Y0 + bt;


一般情况下 t可取 ….3,2,10,-1,-2,-3………;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: