每日作业20200429 - 二元一次方程 解鸡兔同笼
题目
鸡兔同笼, 共有35头, 94脚. 求有几只鸡几只兔
分析
1.列方程组x + y = 352x + 4y = 94
2.求解x = 23y = 12**拓展**
二元一次方程表达式ax + by = cmx + ny = d
代码
public class Homework0429 {public static void main(String[] args) {int c = 0; //表示鸡的数量int r = 0; //表示兔的数量for(c = 0; c <= 35; c++ ){ //从鸡的数量,开始遍历for( r = 35 - c; r >= 0; r--){ //从兔的数量开始遍历if( (2 * c + 4 * (35 - c)) == 94 ){ //判定条件System.out.println("鸡有:" + c + "\t兔有:" + r);break; //满足时退出本次循环(结果的唯一性,当鸡的数量为a时,则兔的数量至多有一个解)}}}}}
运行结果
鸡有:23 兔有:12
总结
1.本题本质为解数学题,特定题目下,可以优化方程,进而使代码更简洁,缩短运算时间;
2.本题代码不够简洁,循环次数过多(鸡和兔都是遍历了 0~35)
二元一次方程组的通用解
代码
import java.util.Scanner;public class Test01 {public static void main(String[] args) {Scanner sc = new Scanner(System.in); //提示用户输入参数(此程序不做输入判断)System.out.println("请参照 a * x + b * y = c 的格式输入方程参数!");//根据提示输入方程1的参数System.out.print("方程1,a1 = ");double a1 = sc.nextDouble();System.out.print("方程1,b1 = ");double b1 = sc.nextDouble();System.out.print("方程1,c1 = ");double c1 = sc.nextDouble();double[] d1 = {a1, b1, c1}; //将方程1的参数放进数组中System.out.println( "方程1:" + a1 + " * x + " + b1 + " * y " + " = " + c1 + "\n");//根据提示输入方程2的参数System.out.print("方程2,a2 = ");double a2 = sc.nextDouble();System.out.print("方程2,b2 = ");double b2 = sc.nextDouble();System.out.print("方程2,c2 = ");double c2 = sc.nextDouble();double[] d2 = {a2, b2, c2}; //将方程2的参数放进数组中System.out.println( "方程2:" + a2 + " * x + " + b2 + " * y " + " = " + c2 + "\n");method(d1, d2); //调用方法}/*** 用以解二元一次方程组* @param d1 方程1的参数* @param d2 方程2的参数*/public static void method(double[] d1, double[] d2) {//d1[0] * x + d1[1] * y = d1[2];//d2[0] * x + d2[1] * y = d2[2];double x = 0; //方程组未知数double y = 0; //方程组未知数double a = d1[0] / d2[0]; //系数比double b = d1[1] / d2[1]; //系数比double c = d1[2] / d2[2]; //系数比if (d1[0] * d1[1] * d2[0] * d2[1] != 0) { //判断,是否为二元一次方程,是 则执行下述语句if (a != b) { //判断,有唯一解x = (d2[1] * d1[2] - d1[1] * d2[2]) / (d2[1] * d1[0] - d1[1] * d2[0]);y = (d2[0] * d1[2] - d1[0] * d2[2]) / (d2[0] * d1[1] - d1[0] * d2[1]);System.out.println("该方程组有唯一解,为:x = " + x + " , y = " + y);} else if (a == b && a == c) {System.out.println("该方程组有无穷多解!");} else {System.out.println("该方程组无解!");}} else { //判断,是否为二元一次方程,否 则执行下述语句System.out.println("这不是二元一次方程组!"); //此处可引用解一元一次方程的方法}}
}
运行结果
请参照 a * x + b * y = c 的格式输入方程参数!
方程1,a1 = 1
方程1,b1 = 1
方程1,c1 = 35
方程1:1.0 * x + 1.0 * y = 35.0方程2,a2 = 2
方程2,b2 = 4
方程2,c2 = 94
方程2:2.0 * x + 4.0 * y = 94.0该方程组有唯一解,为:x = 23.0 , y = 12.0
注
1.该代码略冗长,可对方法进行封装使代码简洁,如参数输入方法
2.该代码采用的是二元一次方程的求根公式进行求解
每日作业20200429 - 二元一次方程 解鸡兔同笼相关推荐
- python二元一次方程组用鸡兔同笼的思路来写编程_python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》......
- 1 - <应用二元一次方程组 -- 鸡兔同笼> 教学目标 1 ,知识与技能:会用二元一次方程组 在具体问题的解决过程中提高学生的解二 元一次方程组的技能: 2 .过程与方法:使学生掌握 ...
- 【小学数学】假设法解鸡兔同笼
假设法解鸡兔同笼 这是一个假设法解鸡兔同笼的程序. (注意:课本的标准解法是列表法!) 假设法解鸡兔同笼是4.5.6年级小学数学的经典附加题. 拿去给小学生学格式.学步骤完全没问题. 你永远可以相信薛 ...
- c++解鸡兔同笼(3)
大家好,今天小编继续带大家用c++解鸡兔同笼. 第一期我们知道: 解鸡兔同笼的方法有三种: 1.一个一个的试: 2.假设法:假设全是兔,--: 3.方程法: 今天小编就带大家用第三种方法解鸡兔同笼. ...
- c++解鸡兔同笼(2)
大家好,今天小编继续带大家用c++解鸡兔同笼. 上期,我们知道: 解鸡兔同笼的方法有三种: 1.一个一个的试: 2.假设法:假设全是兔,--: 3.方程法: 今天小编就带大家用第二种方法解鸡兔同笼. ...
- C语言: 编写一个程序解鸡兔同笼问题:已知鸡兔总数为a, 鸡兔腿总数为b, 计算出鸡兔各多少只
题目: 编写一个程序解鸡兔同笼问题:已知鸡兔总数为a, 鸡兔腿总数为b, 计算出鸡兔各多少只 题目分析:直接使用顺序结构就行 1.设鸡有x只,兔子有y只,因此x+y=a:即, x=a ...
- php设计鸡兔同笼问题解法,数量关系解题技巧:三种方法巧解鸡兔同笼问题
[导读] 中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来数量关系解题技巧:三种方法巧解鸡兔同笼问题. 鸡兔同笼问题是事业单位考试中比较常见的一种题型,题干特征非常明显,解题方法多样 ...
- python求鸡兔同笼 鸡兔总数鸡兔腿_编写一个程序解鸡兔同笼问题:已知鸡兔总数为a,鸡兔腿总数为b,计算鸡兔各有多少只?...
[单选题]42. Wie alt ist deine Schwester? Ist sie noch klein? - Ja, sie ist acht.(1998) [单选题]46. Er beha ...
- java马克思手稿_java 循环嵌套解决一元,二元,三元方程(增长率,鸡兔同笼,马克思手稿)...
一元方程: 2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人? int a=8; int year=2006; while (a<=20) { a= ...
- 利用计算机解决古代数学问题鸡兔同笼,古代人是怎样解决“鸡兔同笼”得问提的?...
鸡兔同笼是我国古代著名趣题之一.大约在1500年前,<孙子算经>中就记载了这个有趣的问题.书中是这样叙述的:"今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?" ...
最新文章
- java继承的知识点_Java知识点梳理——继承
- MongoDB 学习笔记四 C#调用MongoDB
- 笨方法“学习python笔记之列表
- POJ 1113 Wall 求凸包
- 力扣78. 子集(JavaScript)
- javascript基础知识系列:DOM学习
- Linux 命令(37)—— free 命令
- linux cp{,bak},Linux中cp覆盖不提示
- Spring→简介核心作用范围、框架、接口编程、IOC控制反转、单元测试、Bean容器、注入、作用域、生命周期、自动装配注入、自动扫描@注解
- 《天下3》幻化:剧情任务
- 3.3.9nbsp;艾利·高德拉特——TOC制…
- pr 快捷键自我需要总结
- excel单元格内容拆分_excel软件应用:如何妙用Word拆分单元格数据
- c语言中变量加1,c语言中,指针加1的情况.指针变量详细介绍
- 分区助手4.0绿色中文版
- 工作心得之接口数据同步
- Easyexcel导入导出多个sheet
- 教你如何完全解析Kotlin中的类型系统
- 2022年化工自动化控制仪表找解析及化工自动化控制仪表考试技巧
- Rip与不连续子网拓扑(小白基础实验)
热门文章
- C语言例题——简易计算器
- ubuntu合并终端_如何在Ubuntu中安装多个终端以及更改默认终端
- 3288 android5.1 编译,【DLT-RK3288试用】8. RK3288 编译 Android 5.1 源码
- H264马赛克、延时的优化
- Wifite.py 修正版脚本代码
- 锤子便签V2.5产品体验报告
- 对于Jenkins和gitlab连接的注意事项
- Linux简介云服务器环境搭建
- 安徽省2019c语言二级答案,安徽省计算机等级二级考试真题C语言.doc
- Ubuntu18设置4K屏幕缩放125%