百钱买百鸡问题
故事背景:我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,我国现代非著名教师小甲鱼也在大学时期一次家教的过程中,被同样的小学五年级问题难倒T_T。。。
该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?(咳咳,介个小甲鱼用人类的语言给大家解释下,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?)
题目分析:
如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。设公鸡x只,母鸡y只,小鸡z只,得到以下方程式组:
A:5x+3y+1/3z = 100
B:x+y+z = 100
C:0 <= x <= 100
D:0 <= y <= 100
E:0 <= z <= 100
如果用解方程的方式解这道题需要进行多次猜解,计算机的一个优势就是计算速度特别暴力并且无怨无悔,所以我们可以欺负她、蹂躏她!因此我们用穷举法的方式来解题,需要101^3次猜解,但对于计算机来说,小CASE!
代码清单(请自觉完成后回复可见):
**** Hidden Message *****
作为新学C的我,想出的诡异方法:#include <stdio.h>
int main()
{
static int x,y,z;
for(z=0;z<=100;z+=3)
{
for(y=0;y<=100;y++)
{
for(x=0;x<=100;x++)
{
if(100==x+y+z && 100==5*x+3*y+z/3)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
return 0;
}
{:2_39:}居然是对的……这就是猜解么- -:funk: 看一下答案学习一下 看看............ 好东西
我喜欢好东西啊 看看怎么解的 考试考过的,当时不太会,类似枚举的方法 百钱买百鸡问题 看看 看看那,老师。学习着,快乐着,跟着小甲鱼! package test;
public class testcheck{
public static void main(String[] args) {
int a,b,c;
for ( a = 1; a <=20; a++){ /*外层循环控制鸡翁数*/
for( b=1;b<=33;b++){ /*内层循环控制鸡母数y在0~33变化*/
c=100-a-b;
if(a+b+c==100 && 5*a+3*b+1/3*c==100){
System.out.println("鸡翁有"+a);
System.out.println("母鸡有"+b);
System.out.println("母鸡有"+c);
System.out.println("-------------------");
} 除了穷举法,还有没有其他比较好的算法啊 不看答案解答有困难啊!!!{:5_107:} 看看............ 呵呵,给力啊! 看看答案。 看看看看
{:5_101:} 好奇瞄下吧 好厉害啊!!!