我要用100元来买100斤的三种水果,分别是0.5元每斤的苹果,0.8元每斤的橙子,2.1元每斤的桃子,请问三种水果各是
3个回答

0.5x+0.8y+2.1z=100

x+y+z=100

照理说是无穷解,但是这里有个隐藏条件,x、y、z是正整数,所以就有限起来了,当然结果还是很多

这里先这样看,100*0.5=50,100*0.8=80,100*2.1=210

所以桃子肯定有,问题是多少斤,基本上可以肯定在10斤以上(剩余79斤,太多),30斤以下(剩余37斤,太少)

由于都是小数点后一位,以10斤为基础单位吧

所以假设是20斤

0.5x+0.8y=58,x+1.6y=116

x+y=80

0.6y=36,y=60,x=20

得到一个解

20斤苹果,60斤橙子,20斤桃子

这种题目用隐枚举法最好做(在一定的逻辑工作后有选择的枚举),像这里的范围可以肯定10斤~23斤的,最多只要计算13次

如果一定要公式之类的算,先把z看作常数

x+y=100-z

0.5x+0.8y=100-2.1z

0.6y=((200-4.2z)-100+z)=100-3.2z

然后

z=(100-0.6y)/3.2=(500-3y)/16=31+(4-3y)/16

接着由于z和y都是正整数,y的取值就有特点了

首先一眼就看出来,当y=-4,z=32,然后y要变大,把增加的y剥离出来看

3y/16,所以y必然是以16为单位递增的,那么y的数量都出来了

y=12+16(k-1),k属于自然数

这样z也能得到递推式子,z=29-3(k-1),k属于自然数

那么进而,x=100-y-z=100-12-16(k-1)-29+3(k-1)=59-13(k-1),k属于自然数

然后可以用xyz属于自然数再作k上限

29-3(10-1)=2,59-13(5-1)=7,综上所述,k属于自然数,且,k属于[1,7]

总共有7组解

嘛,总之这种算法就麻烦了,懂否?