加减乘除的计算规则

我很少关心孩子做加减乘除计算的问题,因为:第一,大部分时候算出来的答案是对的;第二,这个问题也实在太低级,有更多关于什么是数学,教什么怎么教才能体现什么是数学,什么是数学的大图景(典型对象、典型问题、典型思维方式、典型分析方法、和世界以及其他学科的关系)这样的更重要的问题需要思考。我真的更加愿意来回答如何才能让学生学会用数学的眼光看世界(发现和提出问题、把问题数学化形式化、求解问题、解的应用和检验以及推广和系统化,这四个步骤中的1、2、4这几步,甚至由于这个1、2、4导致新的数学概念的提出),更愿意去看看数学有哪些典型思维方式——例如不变量的思想,然后问用什么样的例子来体现这些典型思维方式,这样的问题。

但是,今天我发现不是这么回事,在孩子的四则运算过程中存在大量的分类体系和各自问题的特定的方法(顺便,听说高中物理题也成了这个德行:总结出所谓的各种题型,然后对每一种题型有相应的方法。这个太恶心了!)。这个太恐怖了,太让我吃惊了。我一直觉的,根本就没有题型,只有一个一般的方法:那就是思考问题里面有哪些东西,这些东西之间什么关系,这个关系导致了什么样的计算,然后算出来就行了。于是,我尽量克制自己的恶心来做一下这个实在太低级的总结。下面,我们仅仅考虑十进制表示的数字,包含小数点,先不考虑循环小数(其实,以下的总结仍然适用于循环小数)。

加法的计算规则:首先对齐小数点(并且由于小数点对齐了,则实际上各个数位上的数都对齐了;都是整数的话,对其小数点相当于对齐了个位数。但是,总而言之,一句话的概括,就是对齐小数点),然后各个数位,从最右边的开始,做相应数字的(看做一个个的个位数)加法,如果出现加起来超过10的情况,则需要进位,进位需要算到左一位的数字里面,再继续做左一位的加法。

减法的计算规则:首先对齐小数点(并且由于小数点对齐了,则实际上各个数位上的数都对齐了;都是整数的话,对其小数点相当于对齐了个位数。但是,总而言之,一句话的概括,就是对齐小数点),然后各个数位,从最右边的开始,做相应数字的(看做一个个的个位数)减法,如果出现不够减的情况,则需要从左边一位借一个10过来,和当前位上的数字合起来构成“十几”再来完成减法,借位需要算到左一位的数字里面(相当于被减数被事先就减去了1),再继续做左一位的减法。

乘法的计算规则:首先把所有的计算转化成整数的计算,这个时候如果有小数相当于把那个小数做了一次乘以10、100、1000或者更多个10,这些10将来都是要除回来的,记住将来要除多少个。接着就是运用整数乘法。这个时候,要把最后一位对齐(如果非得要这么看,也可以看做小数点对齐,但是,是变成了整数以后的小数点,也就是个位数对齐),接着拿着乘数的个位数先把被乘数乘出来结果,写下来第一行。接着,拿着乘数的下一位把被乘数再一次乘出来,写在第二行上,但是要往左边移一位(这是因为实际上乘数不是一个个位数,而是一个十位数,所以,最后的结果要补一个0)。如果乘数还有百位,则继续这个过程,写下下一行,记得做相应的移位。最后,把得到的各行相加,用上面的加法的计算规则。

除法的计算规则:首先,把所有的计算转化成为整数的计算,这个时候被除数和除数分别被成了几次10要搞清楚,将来要把这些个10都除回去(当然,实际上只需要知道两者的差,如果被除数被乘了更多的10则将来要除以多出来的次数;如果除数被乘了更多的10则将来要乘以多出来的次数。或者,更简单的办法,把被除数和除数同时乘以同样数量的10,尽管这样会造成有的数后面有很多个0,但是商不变,将来也不用除回去了。实际问题中,用哪一种没关系)。接着,把被除数的第一位拿出来,让除数来除除看,按照情况写上(0,1,2,3,4,5,6,7,8,9)当中的一个,这一步叫做凑数。凑完数之后,计算除数和这个凑的数的乘积,写在第一位数的下面。然后做第一位数和乘积的差。得到差以后,把下一位拿过来写在这个差的后面。然后,重复这个“凑数——乘积——差——拿下一位”的过程,直到用完所有的整数。当整数用完之后,还是没有除尽或者达到要求,则在“商”后面加一个小数点,同时在最后的差后面加上一个“零”当做下一位数字。接着再次重复这个“凑数——乘积——差——拿下一位”的过程。

总结一下,加法的计算步骤是:小数点对齐,算个位数加法,注意进位;减法的计算步骤是:小数点对齐,算个位数减法,注意借位;乘法的计算步骤是:变整数,算个位数乘法写相应的一行,算加法,最后调整小数点;除法的步骤是:变整数(可以用被除数和除数同乘来避免最后的调整小数点),“凑数——乘积——差——拿下一位下来”,添加“小数点”并同时加“零”,然后继续“凑数——乘积——差——拿下一位下来”。

就这么简单的规则,并且通用,适用于任何题型,不需要按照不同类型的问题来调整,例如考虑除数是个位数还是多位数的情况,例如考虑被除数还是除数比较大的情况。也就是说,就算是最无聊的纯粹机械式学习的内容,也需要做到越普适越好,不要增加太多特例,尽量一石杀所有的鸟。其次,还需要做到每一个步骤都是可理解的,有道理的,而不仅仅是传授规则。例如,我从孩子那里了解到,在除法中有一步叫做“小数点对齐”——天哪这是什么规则啊,仅仅在被除数是小数同时除数是一位数的时候,这个规则是正确的。其他的情况偶尔也有能够算对的,但是,对于乘法和除法而言,小数点对齐真的是一个没有必要(适用情况有限)又非常容易出问题的规则啊。尽量不要教那些在特殊情况下才对,或者才能够加快计算速度的规则,而是尽量教那些普适的规则。为什么要对小数除法,或者说所有的除法,做这么多的分类,然后制定每一种类型的规则啊。天哪,这是什么样的教学指导思想啊。

要不,你看下面这道题(来源于google检索到的某个课外教学机构),如果我把17改成170呢,1700000呢?为什么会有小数点对齐这个规则啊?所有做题型教学的老师,我吴金闪今天向你们发出挑战,我认为所有的题型教育都是培养SB的教育。当然,在明白是什么,有什么关系,关系决定什么计算之后,做一定量的练习来熟练,我不反对。但是,我反对人为总结出来一些适合特定题目的计算规则,例如我听说过的各种各种的速算(什么末位数都是5则怎样,末位数加起来是10则怎样),那都是在误人子弟,而且是禁锢人思想,限制人思考的,最狠的那种误人子弟的方式。你看看这个题尽然还有步骤八,难道老师看不到就是在不断地运用“凑数——乘积——差——拿下一位下来”这么一个简单的规则吗(偶尔还会用到:整数用完的时候给商加个小数点,同时给被除数增加一个零)?

希望这个总结能够对小学数学的规则教学有一点点启发。这个实在是太恶心了,太低级了。不过,如果这个低级的任务不解决,将来更高级的内容有可能会出现更多的问题。当然,我这么说不表示我们就应该在这个低级任务上花费太多的时间,因为实在不行,将来也还可以用计算器、计算机、搜索引擎和机器人来完成这些低级的任务,只需要知道在什么情况下,根据什么关系,用什么样的计算。但是,尽量把规则总结好,理解好,使得规则说得通,还能够具有普适性,还是有必要的。

为什么不能按照题型的方式来分类然后总结,最后教学?为什么我痛恨这个?我们培养学生是在为了二十和三十年之后做准备,甚至是为了培养在二三十年之后会承担培养那个时候的二三十年之后的人做准备。我们自己都不知道那时候会怎样,我们如何为他们准备呢?他们的世界,他们遇到的问题,肯定会和我们不一样。当然,我以后遇到的问题也将和我现在的不一样。那么,我们如何准备呢?如果我们的方式是把现在遇到的各种问题做一个分类,做好解决问题的模板,然后希望将来他们能够用上这些模板,则是完全没有意义的。不久的将来,所有已经有答案的问题的解决都会被机器替代。我们希望的是将来他们喜欢并且能够提出和解决新的问题。这个时候,分类总结和记忆查询,就不再是面对新问题的方式了。只有教会遇到问题怎么去想,怎么去面对,例如愿意甚至喜欢面对新问题乃至发掘新问题,例如学会那些大概来说那些比较通用的普适的层面的思维方式和分析方法,才有可能有帮助。每一个学科,都要重新去梳理,这样的思维方式和分析方法,也就是我称为学科大图景的东西是什么,用什么样的例子来体现,怎么教,才能真的为他们做好准备。

理解型学习用于题海战术

退括号的机械式学习和理解型学习提到有一些规则是要依靠做题的熟练和记住的。这是典型的机械式学习。其中,我们也提到,就算是这样的规则的学习,学习的方式也主要就是重复,我们也可以让理解型学习发挥作用:用来明白这些规则为什么是这样的,也就是大概形成对这些规则的一定程度的理解,然后再来通过题海战术达到记住和熟练。

但是,今天,我发现,这个还不够,理解型学习,还可以用在计算的过程中。这样才能真的做到事半功倍,通过做少量的题来达到熟练和记住的目的。怎么发挥作用?在计算的任何一个步骤过程中,思考,这一步是按照什么原理或者规则来做的,也就是追问“每一步算出来的结果是什么”和“为什么能够和需要这样计算”的问题。

例如这样的一道面积计算题:一个大长方形里面挖掉一个小长方形,求剩下的部分的面积。挖掉的长方形长度是56cm,宽未知。大长方形的宽为44cm,长未知。剩下的部分的就是一个L形长条,其长条宽度为13cm。recta

如果用大长方形减去小长方形(这一步思考我认为是这个问题最关键的,但是…),则
\begin{align}
\left(56+13\right)\times 44 – 56\times\left(44-13\right)
\end{align}
我家心儿是列出来的算式是这样的
\begin{align}
\left(56+13\right)\times 44 \times 56\times\left(44-13\right)
\end{align}
问第一个括号里面是什么,明白是大的长度,最后的那个括号是什么,明白是小的宽度。问,第一个乘积符号是什么意思?算面积?问最后那个乘积符号是什么意思?算面积。问中间那个乘积符号是什么意思?面积乘以面积是什么?不知道,意识到把周长和面积搞混了。还不是简单地搞混,各自是清楚地,不知道为什么放在一起就能搞糊涂。不过这个不是重点,重点是,通过问每一步计算出来的是什么,就可以自己找到问题,并解决。

也可以把剩下的形状拆成两个长方形(或者等价地,这一步思考我认为是这个问题最关键的,但是…),
\begin{align}
13\times\left(56+13\right)+\left(44-13\right)\times 13
\end{align}

接着就可以开始做计算了,计算部分纯粹就是规则的运用,我以为没什么。但是,你看,心儿会这样算(在这个问题中到还真的没有错,算对了。我实际上是把下一个问题中心儿犯的错移到了这里。道理上是一模一样的),
\begin{align}
13\times\left(56+13\right)= 13\times 56 \times 13
\end{align}
或者
\begin{align}
13\times\left(56+13\right)=13\times 56\times 13\times 13
\end{align}
看起来好像就是分配律记错了,改了就完了。实际上,当然也是,但是不仅仅是这样。分配律错了仅仅是表现,根本问题在于没有仔细问每一步为什么这样算。为什么这样说?首先,心儿算过不少尽管也不多分配律的问题,确实都算对了。其次,看得出来,她心里不太愿意算或者什么原因,就想着完成这道题了。我演示了这样的一个计算。
\begin{align}
13\times\left(56+13\right)+\left(44-13\right)\times 13 \\
=13\times 56 + 13\times 13+44\times 13 -13 \times 13 (乘法对加法的分配律) \\
=13\times 56 +44\times 13 + 13\times 13 -13 \times 13 (加法交换律) \\
=\left(13\times 56 +44\times 13\right) + \left(13\times 13 -13 \times 13\right) (加减法结合律) \\
=\left(13\times 56 +44\times 13\right) (算出来最后的减法) \\
=\left(56\times 13 +44\times 13\right) (乘法交换律) \\
=\left(56+44\right)\times 13 (乘法对加法的分配律) \\
=100\times 13 (算出来加法) \\
=1300 (算出来乘法)
\end{align}
也就是在每一步的等式的后面标注等式成立的理由是什么。
然后,问,你的计算的每一步的理由是什么,心儿就能够自己找出来问题在哪里了。

通过这个例子,我想告诉大家,就算在熟练和记住规则这样的几乎完全就是机械式学习的任务上,理解型学习也是可以发挥作用的。其发挥作用的方式就是在计算的每一步问:“算出来的是什么”,“为什么能够和需要这样来计算”。更一般地来说,语文数学英语都一样,其实什么都一样,不过就是多问几个问题,问是什么,问为什么,问WHWM

当然,我再一次强调,理解型学习的真正威力不在这里,而在于使用概念地图帮助理解型学习的四个层次

又多了一道题的例子:小林和小文各自有200元钱。小军从每人那里借了25.5元。这时候三个人的钱一样多。问小军原来多少钱?

心儿列出来算式是这样的\(\left(200-25.5\right)-2\times 25.2\)。这个很对。但是,我接着问:\(\left(200-25.5\right)\)是什么?答小林和小文的钱。问他们什么时候的钱?答借走以后剩下的钱。问\(2\times 25.2\)是什么?小军借到的钱。\(\left(200-25.5\right)-2\times 25.2\)合起来是什么?小军原来的钱。为什么?小林和小文的剩下的钱减去小军借到的钱,为什么会是小军原来的钱?不知道。可见,还是没有学会思考“是什么”、“为什么”,至少没有学会主动去问这些问题。中间最关键的一步就是由于“这时候三个人的钱一样多”,因此,从数值上,\(\left(200-25.5\right)\)也是小军最后的总钱数。于是,才有小军的总钱数减去小军借到的钱,等于小军自己原来的钱的数目。

在这里例子里面,每一步计算出来的是什么,分别是“小林和小文的剩下的钱(同时也就是小军最后的总钱数)”、“小军借到的钱”还有“小军原来的钱数”。为什么需要这样算,是因为需要计算的是“小军”的原来的钱,已知的是“小军”借到的钱,因此,前面也必须是“小军”的钱。为什么能够这样算,是因为“这时候三个人的钱一样多”,数量上小林和小文的剩下的钱等于小军最后的钱。希望通过这个例子能够更好地学会问是什么为什么,更好地做严密的思考,每一步都有理由的思考,于是达到事半功倍。

顺便,心儿,错了不要紧,关键是要从错的地方学到东西,而且有的时候要追问更深层次的原因在哪里,而不满足于算错了,看错了,也不满足于改过来了。例如,在这里,学会了问“算出来的是什么”,“为什么能够和需要这样来计算”之后,就能够自己发现错误,自己改正,自己提高了。这样做提道题的效果就相当于不思考是什么和为什么的时候的算100道题的效果。

阅读理解题:这个帖子主要说了什么信息(What),用什么例子采用什么逻辑怎么来(How)说明的这个信息,为什么(Why)作者要说这个以及用这样的例子和逻辑来说,你读了以后有什么感想和思考对你意味着(Meaningful)什么。

退括号的机械式学习和理解型学习

今天心儿做一些计算题,需要用到退括号和加括号。当然,从训练计算熟练程度的角度来说,这样的计算题没有意义。反正心儿都是不管三七二十一用竖式计算的,尽管慢点,但是,答案是基本正确的。换一个角度,学会从观察事物然后发现事物的规律,凑某种特殊构造的角度来说,简便计算题还是有一定的训练意义的。

退括号有很多的类型。要记住所有的类型是一件很不容易的事情。例如,

  1. 括号外面是加号的,里面是加减号的,展开以后里面的算符不变。
  2. 括号外面是减号的,里面是加减号的,展开以后里面的算符变号。
  3. 括号外面是加减号的,里面是乘除号的,展开以后里面的算符变号,但是先算乘除后加减。
  4. 括号外面是乘号的,里面是乘除号的,展开以后里面的算符不变。
  5. 括号外面是除号的,里面是乘除号的,展开以后里面的算符变号。
  6. 括号外面是乘号的,里面是加减号的,展开以后里面的算符不变,乘号要用分配率乘到每一个上去。
  7. 括号右边是除号的,里面是加减号的,展开以后里面的算符不变,除号要用分配率除到每一个上去。
  8. 括号左边是除号的,里面是加减号的,没法打开括号。

你看,随便写写就有这么多条。当然,通过大量的计算练习,这些规则都是可以记住的,甚至可以专门来背。这就是典型的机械式学习:学习的目标是学会规则,学习的手段是重复练习。

现在,再来看理解型学习在这里怎么用。第一,这种规则的学习本身不是理解型学习的强项(以概念地图为基础的理解型学习的真正强项在于:第一,整理知识结构,梳理事物之间的联系,并且依靠这些结构来选择教什么,学什么,考什么,怎么教,怎么学,怎么考;第二,用好WHWM问题促进阅读、表达和思考。)。第二,还是可以做到事半功倍的。例如,对于第一条的理解:你想,你本来是类似这样的\(80+(20+3)\),需要去括号,也就是变成\(80+20\pm 3\)这样的,咱们需要决定其中的\(\pm\)到底是什么;这时候,你就考虑有括号的那个\(80+(20+3)\)比没有括号但是只有前两项的\(80+20\)大还是小?肯定大,因为后面的那部分被先加起来了。于是我们知道最后的是加号。例如,对于第二条,\(80-(20+3)\),去掉括号,就大概成了\(80-20\pm 3\);接着想,你就考虑有括号的那个\(80-(20+3)\)比没有括号但是只有前两项的\(80-20\)大还是小?小,因为减去的是两者合起来,现在仅仅减去其中一项,于是还得再减,所以最后的是减号。

同样的道理,可以理解乘法的分配率。例如\(10\times (20+3)\)可以看做每本书10元,先买了20本,接着再买了3本,问总共多少钱。自然地其中一种计算就是先算出来书的总数,接着计算总钱数,也就是\(10\times (20+3)\),或者可以先计算买20本书的钱,再计算买3本书的钱,于是就有\(10\times 20+10\times 3\)。两者应该相同。于是,就得到了乘法分配率。

当然,就算这样理解之后,还是需要通过大量的计算才能熟练。但是,至少,就不再依赖于纯粹记忆了,而是明白了再记。当然,对于这种学习目标本来就是规则的,一定量的练习还是需要的。好处就是,有了这样的理解再去记忆,有可能不用做这么多的题,就可以运用自如了。因此,就算用题海战术,概念梳理,题目梳理,也是很有意义很有帮助的。

为什么我非常讨厌“正方形是特殊的长方形”这句话

前面的帖子我已经批驳过小学老师的长方形和正方形的概念上的严重的问题了。有的老师还辩解说,小学阶段搞清楚这个概念上的包含关系有难度,所以,两种理解——选择长方形的时候包括和不包括正方形的图——都算对。有的老师还更进一步说“正方形是特殊的长方形”,因此肯定就不是“一般的”长方形,所以,名正言顺地不能算进去。

这个让我非常气愤。这是什么逻辑?就这样还要教数学?数学是关于思考的科学,逻辑和计算是非常重要的思考的形式。今天的一个例子,更我对这句话更加生气,起决定写个帖子呼吁废掉这句话,至少在课堂上不推荐使用,或者说推荐避免使用。

今天我问心儿:长方形和正方形什么关系啊?什么样的长方形是正方形啊?心儿回答说“正方形是特殊的长方形”。很好,再稍微想一想就能理解正确了。我等待着后半个问题的答案。过了半天,心儿说,不知道。

于是,我发现,心儿是记住了这句话,但是却没有思考这个“特殊”指的是什么,特殊在哪里。这就是机械式学习的典范:记住了一句话,却没有思考和懂得这句话的意思。包括上面那个这样辩解的老师,也没有搞懂这句话的意思。A是B的特殊情况的意思是说,A肯定是B,但是需要加上额外的也就是“特殊”的条件才能成为A,于是B不一定是A。凡是遇到这样的情况,学习者一定要搞清楚这个加上去的特殊条件是什么。在这里,也就是,“四条边都相等”,而不仅仅是长方形的“对边相等”(同时角是直角)。

等心儿搞清楚这个问题,我提示,那么“长方形是不是平行四边形的特殊情况”?心儿说是,而且特殊在“角是直角”,而不仅仅需要平行四边形的“对边平行”。

于是,问题来了,如果我们需要强调和记住“正方形是特殊的长方形”的话,为什么我们不同时强调和记住“长方形是平行四边形的特殊情况”,“平行四边形是四边形的特殊情况”,“整数是小数的特殊情况”,“小数是数的特殊情况”等等等等啊!

根本上就是一个集合的包含关系而已!完全没有必要强调“特殊”情况。如果想强调,所有的集合包含关系都强调一下去。所以,我非常讨厌“正方形是特殊的长方形”这句话,本身不能一以贯之(也就是所有的集合包含关系都强调一下“特殊”情况),使得学习者没逻辑,不思考,尽管本身没错。

另外,我特意去看了一下教材的所有细节,完全没有具体的定义。没有定义从好的一面来理解,不对学生的精确理解作要求。从不要的一面来理解,就是,完全没有企图把学生教懂。学习就像拼图,不能缺关键的几块,缺关键的一环,缺了也就支离破碎了,学起来更难了。这种平庸化的教学和教材,完全是违背认知规律的。深入才能浅出,当然,可以允许一部分学生深入不进去。但是,一定要给一部分学生深入的机会,学的更简单更透彻,实现“教的更少,学得更多”的机会,实现“学习的更少,学到得更多”的机会。

这是心儿画的关于这个四边形问题的概念地图(经过我的修改):
Math4-2-Quad

这是心儿画的关于三角形的概念地图(其中的长程连接是我添加的,中间那个奇怪的关系也是我添加的):
Math4-2-Triangle

顺便今天跟心儿一起画概念地图,我们总结说作图需要考虑以下几个问题:是什么,什么关系,什么结构。我下次上课讲如何画概念地图的时候跟学生们分享。