文章标题
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………;
相关文章推荐
- vxWorks SPI Flash TFFS实现
- JavaScript创建变量语法
- Java复习(3)-内部类
- 我的c++程序
- css学习任务一:绘制九宫格
- Ajax——响应内容为xml
- java程序设计基础_陈国君版第五版_第九章例题
- 【实战】后台执行的定时任务
- Javascript中的function函数
- C ++中的—>和 . 的区别
- [算法]最大子段和问题
- 外联css及js的使用
- RecyclerView一个奇怪的npe异常
- CSS3详解:transform
- HDU1151最小路径覆盖
- HTML5的革新——语义化标签
- MySQL双主热备问题处理
- SpringMVC+Mybatis框架整合java源码 maven mysql
- Python分布式学习(2)
- HDU.1019Least Common Multiple【深搜求最小公倍数】(3.13)