○李 静
“鸡兔同笼”最早记录于我国的古书《孙子算经》之中。此问题在多个版本教材中都有涉及。教材注重引导学生用猜测、列表枚举、假设法(算术解法)等方法解决问题(部分教材呈现方程解法),体现了解决问题方法的多样化。
之前学生已有用猜测、列表枚举解决问题的经验,因此教学时,在简单的猜测和列表后,教师都要花大量的精力用图形、动画等手段教学假设法。假设笼中全是鸡,根据条件推理计算出有几只鸡、几只兔。但是,为什么要假设全是鸡呢?学生往往不去想或想不明白这一问题,而是被动地照着去假设。
波利亚在《怎样解题》中提出:“教师应当把自己放在学生的位置上,了解学生是怎么想的,然后顺势提出一个问题或建议,而这正是学生自己原本应该想到的。”笔者尝试引导学生最大限度地参与问题解决的过程,建立各种解法的联系,让他们顺势想到假设法。
引导学生借助画图、符号等手段分析数量关系,根据头的数量和隐含的条件猜测一组数据,尝试求解问题。
师:可以从8 个头的条件出发,假设一组数据,看能否满足26 只脚的条件。
生:假设有4 只鸡、4 只兔,共有4×2+4×4=24(只)脚。
师:你可以画图表示一下刚刚的假设吗?
师:少了2 只脚,没有得到正确结果,你能调整一下找到正确答案吗?
生:少了26-24=2(只)脚。说明兔子实际的数量比假设的要多。因为每只兔子比每只鸡多2 只脚(隐含条件),2÷2=1(只),再调整兔子和鸡的数量,加1 只兔,4+1=5(只)兔,减少1 只鸡,4-1=3(只)鸡。
师:怎样画图表示刚刚的调整过程?
师:还可以怎样假设?怎样调整?你能边画图边说明吗?
教师引导学生将语言表述、画图及符号表示(列算式)有机结合起来。在学生想不清楚的地方,教师适时提问或引导其他学生质疑、补充。如:你能解出这道题的一部分吗?题目中还有哪些隐含的有用数据?哪些隐含信息可以帮助你调整求出未知量?学生由此感悟到猜测任意一组数据都能根据隐含条件求解问题,沟通了猜测法与假设法之间的联系。
承接“先猜测再调整”的思路,教师提出问题:“你能将所有猜测方案都列举出来吗?”这时,列表的目的就不只是找到答案,而是整理解决问题的思路。通过调动学生之前解决问题的经验,便可以找到解题的“通解通法”。
头鸡8 7…………兔0 1脚总脚数:2×8=16脚数差:26-16=10,少了10 只脚。总脚数:2×7+4×1=18脚数差:26-18=8,少了8 只脚。……调整一只兔比一只鸡多4-2=2(只)脚。增加兔:10÷2=5兔:0+5=5减少鸡:5鸡:8-5=3一只兔比一只鸡多4-2=2(只)脚。增加兔:8÷2=4兔:1+4=5减少鸡:4鸡:7-4=3……
综上,列表中的每一种猜测都可以调整得出正确结果,教材给出的“假设法”不过是假设极端值(假设全是鸡或假设全是兔)的一种情况而已。为什么要假设极端值呢?因为这样计算腿数简单,调整过程也简单。由此,学生便找到了解决“鸡兔同笼”问题的通法,并在通法中分离出简便方法——假设法,学生心中的疑问“为什么假设全是鸡”便解开了。教材中给出的三种方法,即猜测法、列表法、假设法也都统一到一个解题思路之中了。
以上都是从满足8 个头的条件进行假设的(头的数量少,方便调整)。教师还可以引导学生变换角度继续思考:“我们还能从其他条件出发进行假设吗?”当然,我们也可以从脚的只数出发进行假设:假设26 只脚全是鸡的脚,然后调整。不过脚的数量复杂,调整起来也更麻烦些。
“鸡兔同笼”问题还有许多解法。如“抬腿法”,解题思路与记载在《孙子算经》中的解题方法“半足法”相同:上置头,下置足,半其足,以头除足,以足除头即得(脚数除以2,结果减头数得兔,再用总头数减兔,得鸡)。除了《孙子算经》,中国古代数学书籍《算法统宗》中也记载了一道“鸡兔同笼”的问题,还有一个同类型的“米麦问题”。《算法统宗》采用的解题方法是与“半足法”不同的“倍头法”和“四头法”,即:倍头减足折半是兔(头数乘2,足数减掉乘积后除以2 得兔);四头减足折半是鸡(4 乘头数,减掉足数除以2 得鸡)。
整理算法后我们发现,“半足法”是从满足脚的条件出发的假设法,而“倍头法”“四头法”则是从满足头的条件出发的假设法。
不管是古书中的“半足法”“倍头法”,还是教材中的“假设法”,都只呈现了解决问题的步骤。任何程序化的算法背后都有创造算法的思路。教学中,教师应引导学生充分经历算法背后思路的思考过程,沟通猜测法、列表法与假设法之间的关系,消除心中的疑惑。
“半足法”和“倍头法”用解二元一次方程的“消元法”理解更具有去情境化的优势。以“半足法”为例。
假设有x只鸡,y只兔:
方程法解决“鸡兔同笼”问题具有去情境化、结构化的特点。学习方程之后,可以让学生用方程方法再来解决“鸡兔同笼”问题,比较代数思维和算术思维的不同,感受不同解法背后的相通之处。