java - 百钱百鸡小算法

传送门: 袁咩咩的小小博客

百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的《算经》,这是古代著名数学家张丘建首次提出的。百钱百鸡问题原文如下:

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买白鸡,问翁、母、雏各几何?

大致的意思是,攻击5文钱一只,母鸡3文钱1只,小鸡3只1文钱,如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?

分析

百钱买白鸡问题中,有三个变量:公鸡数量、母鸡数量、小鸡数量,分别设为x、y、z,这三者应该满足如下关系:

x+y+z=100;
5x+3y+z/3=100;

三个变量,两个方程,因此这是一个不定方程组,这导致求解的结果不唯一。

示例代码

编写一段代码,用于计算mn鸡的问题,当m=100n=100时,正好是百钱百鸡问题。

package com.example;public class Code {public static void main(String[] args) {System.out.println("百钱百鸡问题的解为:");buyChicken(100,100);}public static void buyChicken(int m,int n){for (int x = 0;x <= n;x++)  //公鸡数量for (int y = 0;y <= n;y++) { //母鸡数量if (x + y <= n) {    //公鸡和母鸡只和不能超过 nint z = n - x -y;    //小鸡数量, 用到第一个方程 x + y + z = nif (z%3 == 0 && x*5 + y*3 + z/3 == m) {//小鸡数量必须为3的倍数, 且当第二个方程成立时, 得到正确结果System.out.println("公鸡:" + x +  " 母鸡:" + y + " 小鸡:" + z);}elsecontinue;    //当结果不满足条件时, 继续下一次循环}elsebreak; //当公鸡和母鸡数超过 n 时, 退出当前循环}}
}

这样,我们运行程序可以得到解:

百钱百鸡问题的解为:
公鸡:0 母鸡:25 小鸡:75
公鸡:4 母鸡:18 小鸡:78
公鸡:8 母鸡:11 小鸡:81
公鸡:12 母鸡:4 小鸡:84

这里我采用了穷举的方法,将所有的值进行穷举,寻找方程组的解。

转载于:https://www.cnblogs.com/yuanmiemie/p/6638593.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络管理员demo,计算机网络试题demo

计算机网络试题demo 1 北京交通大学 2006-2007 学年 第二学期考试试题 课程名称&#xff1a;计算机通信与网络技术 班级&#xff1a;电气 05 出题人&#xff1a;网络课程组 题 号 一 二 三 四 五 总分 得 分 签 字 一&#xff0e; 选择题(每题1 分&#xff0c;共20 分) 1&#…

C 语言中可以调用命令行指令的 system()函数

C语言有一个system函数&#xff08;在<stdlib.h>头中&#xff0c;C则为<cstdlib>头&#xff09;&#xff0c;可以用来调用终端命令。原型如下&#xff1a; int system(const char *cmdline /* 命令字符串 */); system函数调用/bin/sh 执行特定的shell命令&#xf…

文本怎么换成html,编辑html格式文本可改成txt格式(可以替换或更换某文本)新手...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼新的名字生活助手If Clock.Hour < 12 ThenTextWindow.WriteLine("早上好&#xff0c;测试者")ElseIf Clock.Hour < 14 ThenTextWindow.WriteLine("中午好&#xff0c;测试者")ElseIf Clock.Hour < 17…

impala sql清单

创建数据库 CREATE DATABASE IF NOT EXISTS database_name; 查看所有数据库 show databases 删除数据库 DROP DATABASE IF EXISTS sample_database; 进入数据库 use dbname 创建表 CREATE TABLE IF NOT EXISTS test.student (name STRING, age INT, contact INT ); 查…

考研计算机网课辅导,考研计算机网课辅导哪个好

考研计算机网课辅导哪个好&#xff1f;面对市面上如此之多的考研辅导&#xff0c;怎么选择成了很多学员的难题。现在的在线教育水平很高了&#xff0c;特别是在考研辅导上&#xff0c;学习自由&#xff0c;配套服务全面。找培训还是要看老师&#xff0c;比较牛叉的注会老师如张…

什么是流程控制

浅析PHP流程控制 今天Qi号给小白们分享一下PHP基础(相互请教&#xff5e;&#xff5e;)&#xff1a; 下面是Qi号搜集的资料及自己的总结希望有所帮助&#xff1a; 什么是流程控制&#xff1a;在声明式的编程语言中&#xff0c;流程控制指令是指会改变程序运行顺序的指令&#x…

连接hadoop java.io.IOException:Could not locate executable null\bin\winutils.exe in the Hadoop binarie

java连接hadoop报错 java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 原因查找 找到报错位置hadoop包中的xxx/Shell.java public static final String getQualifiedBinPath(String executable) throws IOException {// co…

中南大学王斌计算机学院,中南大学 信息科学与工程学院,长沙 410083

摘要&#xff1a;An optimization method of operation parameter based on comprehensive status evaluation model was proposed on the background of optimization control problem for lead-zinc sintering process. Based on the sintering process mechanism analysis, …

HBase shell命令行

启动Shell $ hbase shell 列出所有的表 hbase > list 创建名为mytable的表&#xff0c;含有一个列族hb hbase > create mytable , hb 在‘mytable’表的first行中的‘hb:data’列对应的数据单元中插入字节数组‘hello HBase’ hbase > put mytable , firs…

Win10系列:JavaScript页面导航

页面导航是在开发应用的过程中使用频率较高的技术&#xff0c;其中比较常用的导航方式有多页导航和页内导航&#xff0c;采用多页导航方式的应用程序包含一系列的页面&#xff0c;在一个页面中加入另一个页面的链接地址后&#xff0c;单击链接将跳转到指定页面&#xff0c;从而…

java maven调用hbase

pom.xml <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-it</artifactId><version>1.2.0</version> </dependency> 源码 import java.io.IOException; import java.util.ArrayList; import java.util.…

前端学习(2347):创建新页面和配置

pages.json {"pages": [ //pages数组中第一项表示应用启动页&#xff0c;参考&#xff1a;https://uniapp.dcloud.io/collocation/pages{"path" : "pages/message/message","style" : {"navigationBarTitleText": "信…

计算机与现代教育技术论文开题报告,计算机科学技术大学硕士与本科毕业论文开题报告...

这是一篇计算机科学技术方面有关毕业论文题目范文,与二维动画设计与制作相关毕业论文。是写论文专业与计算机科学技术及计算机软件及发表一篇方面相关的免费优秀学术论文范文资料&#xff0c;可作为计算机科学技术方面的大学硕士与本科毕业论文开题报告范文和职称论文论文写作参…

3.3、自定义错误页面

如果你在浏览器的地址栏中输入了不可用的路由&#xff0c;那么会显示一个状态码为 404 的错误页面。现在这个错误页面太简陋、平庸&#xff0c;而且样式和使用了 Bootstrap 的页面不一致。 像常规路由一样&#xff0c;Flask 允许程序使用基于模板的自定义错误页面。最常见的错误…

hive shell/sql 命令行

命令hive进入hive命令行 //列表数据库 show databases; //创建数据库 create database myhive; //创建数据库时检查存在与否 create database if not exists t1; //创建数据库时带注释 create database if not exists t2 comment learning hive; //创建带属性的数据库…

前端学习(2348):tabber

{"pages": [ //pages数组中第一项表示应用启动页&#xff0c;参考&#xff1a;https://uniapp.dcloud.io/collocation/pages{"path" : "pages/message/message","style" : {"navigationBarTitleText": "信息页",&…