题目:
古代数学巨著《九章算数》中有这么一道题叫“五家共井,甲二绠(汲水用的井绳)不足,如(接上)乙一绠;乙三绠不足,如丙一绠;
丙四绠不足,如丁一绠;丁五绠不足,如戊一绠;戊六绠不足,如甲一绠,皆及。
意思就是说五家人共用一口井,甲家的绳子用两条不够,还要再用乙家的绳子一条才能打到井水;乙家的绳子用三条不够,还要再用丙家的绳子
一条才能打到井水;丙家的绳子用四条不够,还要再用丁家的绳子一条才能打到井水;丁家的绳子用五条不够,还要再用戊家的绳子一条才能打
到井水;戊家的绳子用六条不够,还要再用甲家的绳子一条才能打到井水。
最后问:井有多深?每家的绳子各有多长?
看了遍题目,发现还是一道方程题目,想到百鸡百钱问题,便想让他归一化,设置一个中间变量,让这个中间变量去表示所有的其他变量,简化计算机计算次数。从而做到优化。
代码如下:
/** * @Author Peter_S * @Date 2018/6/4 */ public class Ces2 { /** *古代数学巨著《九章算数》中有这么一道题叫 * “五家共井,甲二绠(汲水用的井绳)不足, * 如(接上)乙一绠;乙三绠不足,如丙一绠; * 丙四绠不足,如丁一绠;丁五绠不足,如戊一绠; * 戊六绠不足,如甲一绠,皆及。 * */ public static void main(String[] args) { for (int k = 1;k<5;k++){ int h = 721*k; int a = 265*k; int b = 191*k; int c = 148*k; int d = 129*k; int e = 76*k; if (2*a+b==h && 5*d+e==h){//取两个方程式作为检验 System.out.println("甲" + a + "米;乙" + b + "米;丙" + c + "米;丁" + d + "米;戊" + e + "米"); System.out.println("井深" + h + "米"); } } } }
结果如下:
甲265米;乙191米;丙148米;丁129米;戊76米
井深721米
甲530米;乙382米;丙296米;丁258米;戊152米
井深1442米
甲795米;乙573米;丙444米;丁387米;戊228米
井深2163米
甲1060米;乙764米;丙592米;丁516米;戊304米
井深2884米
参考原网址:
http://www.cnblogs.com/huangxincheng/archive/2012/08/06/2625427.html
原网址上写的更详细一点