多伦多生活纪实:早春湿雪

这个方法不错,很容易解出答案。对于只有两种动物的情形,肯定对。

但如果有三种动物就麻烦了。比如蜂鸟,蝴蝶,蜘蛛共30只,有脚共132只,请问蜂鸟,蝴蝶,蜘蛛各有多少只?你这里所说的办法肯定行不通。但如果用我说的三种办法除代数方法不能解,其余两种方法能解答这道题。电脑使用迭代法,加入只能取整数的条件,且必须三种动物都有,任何一种动物都不能为零,很容易就可以得到结果如下:

(蜂鸟,蝴蝶,蜘蛛)
是(13,15,2)
或(14,12,4)
或(15,9,6)
或(16,6,8)
或(17,3,10)

答案是以上5种结果之一,不可能有第六种答案。

***
***

数学证明如下:

我们设:

* 蜂鸟有 x 只(每只2只脚)

* 蝴蝶有 y 只(每只6只脚)

* 蜘蛛有 z 只(每只8只脚)

题目条件:

1. 总数量:x+y+z=30

2. 总脚数:2x+6y+8z=132

### 第一步:简化方程组

利用第一个方程 x+y+z=30,我们可以消去 x:

由此得 x=30−y−z

代入第二个方程:

2(30−y−z)+6y+8z=132

展开:

60−2y−2z+6y+8z=132

合并同类项:

60+4y+6z=132

4y+6z=72

两边同时除以2:

2y+3z=36 (★)

### 第二步:求解非负整数解

解方程组:

x+y+z=30

2y+3z=36

从 (★) 式中枚举合适的 z,使 2y=36−3z 为偶数且非负:

我们来枚举 z 的可能值(因为 z≥1,且 3z≤36):

z:2y=36−3z:y:x=30−y−z

|2:30:15:13|

|4:24:12:14|

|6:18:9:15|

|8:12:6:16|

|10:6:3:17|

解毕。