案例:下面是一道鸡兔同笼问题: 一群小兔一群鸡,两群合到一群里,要数腿共48,要数脑袋整l7,多少小兔多少鸡 解法一:用算术方法: 思路:如果没有小兔,那么小鸡为17只,总的腿数应为34条,但现在有48条腿,造成腿的数目不够是由于小兔的数目是O,每有一只小兔便会增加两条腿,敌应有(48—17×2)÷2=7只小兔。相应地,小鸡有10只。 解法二:用代数方法: 可设有x只小鸡,y只小兔,则x+y=17①;2x+4y=48②。 将第一个方程的两边同乘以-2加到第二个方程中去,得x+y=17;(4-2)y=48-17x2。 解上述第二个方程得y=7,把y=7代入第一个方程得x=10。 所以有10只小鸡.7只小兔。 问题: (1)试说明这两种解法所体现的算法思想;(10分) (2)试说明这两种算法的共同点。(10分)
(1)解法一所体现的算法是: S1假设没有小兔.则小鸡应为n只; S2计算总腿数为2n只; S3计算实际总腿数m与假设总腿数2n的差值m-2n; S4计算小兔只数为(m-2n)÷2; S5小鸡的只数为n-(m-2n)÷2; 解法二所体现的算法是: S1设未知数 S2根据题意列方程组; S3解方程组: S4还原实际问题,得到实际问题的答案。 (2)不论在哪一种算法中,它们都是经有限次步骤完成的,因而它们体现了算法的有穷性。在算法中,第一步都能明确地执行,且有确定的结果,因此具有确定性。在所有算法中,每一步操作都是可以执行的,也就是具有可行性。算法解决的都是一类问题,因此具有普适性。