财新传媒
位置:博客 > 万战勇 > 【李尚志】为什么需要字母运算

【李尚志】为什么需要字母运算

 

【老万按】李尚志老师是中国自己培养的第一批博士之一。他曾任中国科技大学数学系教授和系主任、北京航空航天大学理学院院长和数学与系统科学学院院长。这篇文章来自李老师正在撰写的新书,由他授权“老万故事会”首发,希望对中学生朋友们有所帮助。
 
~~~~~~~~~~~~~~~~~
 
【李老师前言】我在2003年上半年在科大防非典期间完成了我的《线性代数(数学专业)》的主要部分。该教材早就开始写,因为上课、开会、出差较多,写书的工作进展迟缓。非典期间不上课不开会不出差,终于有了快速进展,2005年完成书稿交给高教出版社,2006年5月出版。
 
 
这次新型肺炎,我在海南呆着,故伎重演,正好可以加紧赶写欠出版社的书稿。先是把已经到手的最新录制的《抽象代数启蒙》的视频文件又校对了一遍。然后来赶写与华东师大出版社约稿的《大学视角下的中学数学》,其中涉及的都是中学数学老师以至于中学和大学学生关注和迷惑的一些基础而又关键的问题。所以,希望将其中一些精彩片段提前分享给中学和大学的师生们,让他们在隔离期间不但有事可做,而且有所收获和进步。
 
~~~~~~~~~~~~~~~~~
 
运算律才是最强大脑
 
例1. 一秒算出 999999² =  ?
 
分析. 999999² 就是两个 999999 的乘积。这样大的两个数的乘积能够一秒钟算出来吗?也许你听说过有些人吹捧的“最强大脑”有神奇的计算能力,也许你觉得只有那些“最强大脑”才能一秒看出这样大的两个数的乘积。其实, 不需要“最强大脑”,普通人的大脑就够了。不需要死算,只要冷静分析,就能巧算。
 
两个 999999 的乘积不容易算。假如将第一个 999999 加 1  变成 1000000,第二个 999999 减 1 变成 999998,乘积变成
1000000 × 999998 = 999998000000,
一眼就能够看出答案。
 
两个 999999 相乘,将其中一个增加 1,另一个减少 1,+1 与 -1 是相反意义的量,它们的效果应该相互抵消,乘积似乎应该不变,一眼看出的答案 999998000000 就应该是两个 999999 的乘积。
 
稍微验算一下就发现这个答案不对:两个 999999 的个位都是 9,乘积的个位应该与 9 × 9 = 81 的个位相同,应该是1而不是0。将 999999 × 999999 变成
(999999 + 1)(999999 - 1),
这个变形虽然简化了运算,却改变了算式的值。失败了。
 
注:+1,-1是“具有相反意义的量”,为什么将两个乘数 999999 分别加 1 、减 1 的效果没有相互抵消,没有保持乘积不变?这是因为, “相反意义的量” +1,-1 是加法意义下的相反,可以保持两个数的和不变。不是乘法意义下的相反,不能保持乘积不变。乘法意义下“具有相反意义的量”是互为倒数,而不是互为相反数。
 
999999 变成 999999 + 1,是原来的 1000000/999999 倍。要使乘积不变,另一个 999999 就应该乘 1000000/999999 的倒数 999999/1000000。
 
而将 999999 减 1 变成 999998 是乘 999998/999999。由 
999999/1000000 = 1 - 1/1000000,
999998/999999  = 1 - 1/999999 及
1/1000000 < 1/999999
999999/1000000 > 999998/999999。
 
将 999999 减 1 所乘倍数 999998/999999 小于999999/1000000,得到的乘积 (999999 + 1)(999999 - 1)  应比原来的 999999² 小,而不是相等。
 
“具有相反意义的量”的基本含义是两个量可以相互抵消。到底怎么抵消,依赖于“相反意义”是什么意义:做加法相互抵消的量是相反数,做乘法相互抵消就是倒数。
 
“相反意义的量” 的“意义”不明确,不是一个数学名词。有一个数学名词“逆”是它的同义词。但“逆”也要区分“加法逆”、“乘法逆”。
 
a 的加法逆 b 满足 a + b = 0,b = -a 是 a 的相反数。
a 的乘法逆 c 满足 ac = 1,c = 1/a 是 a 的倒数。
 
不用“相反意义的量”这个名词,而用相反数、倒数这样具有严格意义的数学名词取而代之, 就不会出现这样的混乱。
 
什么样的变形不改变算式的值?运算律指挥的变形不改变值!我们将算式 
(999999 + 1)(999999 - 1)
用运算律展开,看它与 999999² 相差多少::
 
   (999999 + 1)(999999 - 1)
= 999999(999999 - 1) + 1(999999 - 1)   (分配律)
= (999999 × 999999 - 999999) + (999999 - 1)  (分配律)
= 999999² + (-999999 + 999999) - 1
= 9999999² - 1  (加法结合律)
 
计算结果,发现 (999999 + 1)(999999 - 1) = 999998000000 比 999999²  少 1。将它加 1 就得到正确答案: 
 
解. 
    999999²
= (999999 + 1)(999999 - 1) + 1
= 999998000001。
 
用等式
999999² = 1000000 × 999998 + 1
计算平方,确实可以在 1 秒内完成算出结果。但推出这个等式的长篇大论花了很长时间。假如这些长篇大论只用来算这一道题,恐怕是得不偿失。假如不用这些长篇大论,直接死算 999999 × 999999 得到答案,再死算另一道题你还需要再花这么长时间。算 100 道题就需要花 100 倍的时间。
 
但我们以上的长篇大论花时间算出的不止一道题,也不止 100 道题,而是无穷多道题,因为我们是用运算律算题。运算律不仅适用于 999999,1 这两个特殊的数,而且适用于两个不同字母 a,b 表示的任意两个数。计算过程如下:
  (a + b)(a - b) = a(a - b) + b(a - b)  (分配律)
= [aa + a(-b)] + [ba + b(-b)]  (分配律)
= a² + [a(-b) + ba] + b(-b)  (加法结合律)
= a² + [-ab + ba] - b² 
= a² + 0 - b²   (乘法交换律)
= a² - b²
 
运算过程是:
用分配律将 a + b 与 a - b 的乘积展开成 4 个乘积 aa,a(-b),ba,b(-b) 之和;
再用相反数的运算律得到 a(-b) = -ab,b(-b) = -bb;
再用乘法交换律 ba = ab 得到 -ab + ba = -ab + ab = 0;
再用 0 的运算律 a² + 0 = a² 消掉 0。
 
每一步都在运算律指挥下进行,不但适用于我们已经学过的正负有理数,还适用于还没学到、以后将要学的其它的数。因此,以上得到的公式
(a + b)(a - b) = a² - b²
适用于我们已经学过和将要学的所有的数。这个公式可以叙述如下:
 
任意两数的和与差的乘积等于这两数的平方差。
 
旁注:怎么能够保证以后新发明的数的加法和乘法仍然满足旧的运算律呢?很简单:如果不满足旧的运算律,就不准它们叫加法和乘法。不管你把什么东西定义为新的数,不管你怎样定义新数的加法和乘法,都必须先审查它是否满足运算律。满足了运算律才准许叫加法和乘法,这就保证了旧的运算律推出的公式和结论就继续有效,自动成立。例如
(a + b)(a - b) = a² - b²
对于满足乘法对于加法的分配律、加法结合律、乘法交换律的新数 a,b 继续成立。
 
例2. 心算 85²。
解. 由
(85 + 5)(85 - 5) = 85² - 5² 
    85²
= (85 + 5)(85 - 5) + 5²
= 90 × 80 + 25
= 7225。
 
字母运算一次顶无穷多次
 
微信群中经常流传一些装神弄鬼的贴子,小编喜欢声称“科学不能解释”。以下就是一例。你能用科学解释吗?
 
例3. (手机号码泄露你的年龄). 将你的手机号码加 20 ,乘 25,再乘 4,再加 17,再减去你的出生年份。末两位就是你的年龄。
 
分析. 你相信吗?不信就试试。
 
小编不认识你, 不知道你的手机号码和年龄。手机号码显然与年龄没有关系,居然能够正确。你觉得不可思议,就相信他具有“科学不能解释”的神奇法力。
 
反过来想一下:既然他这个算法不仅适用于你,也适用与别的人,你就不应该只算自己的号码,而应该算所有人的号码。所有人的号码各不相同,怎么能算呢?一个一个号码依次算吗?全世界有几十亿人,你不可能将他们的手机号码都找来,一个一个依次算。只要用一个字母 a 就可以代表全世界所有人的手机号码,而且代表从过去到现在到未来所有的地球人和外星人的号码。
 
虽然 a 代表了无穷多个不同的数,但是所有这些数满足共同的运算律。因此不需要也不可能将它们一个一个依次计算,用运算律算一次就能得到适用于所有人的结论。
 
解. 设你的手机号码为 a。加 20 等于 a + 20。
乘 25 等于 25(a + 20) = 25a + 500  (分配律)。
再乘 4 等于 4(25a + 500) = 100a + 2000  (分配律)。
再加 20 等于 (100a + 2000) + 20 = 100a + (2000 + 20) = 100a + 2020  (加法结合律)。
 
下一步要求减去出生年。各人的出生年不同,不能用一个固定的数表示,只能用字母表示。出生年与手机号码无关,不能再用 a 表示,可以用与 a 不同的任意字母表示,比如用 b 表示,得到 100a + 2020 - b。它的末两位数是你的年龄吗?
 
100a 是整数 a 的 100 倍。不论 a 是多少,100a 的末两位都是 00。因此,100a + 2020 - b 的末两位就是 2020 - b 的末两位,与 a 没有关系。
 
2020 就是今年,b 是你的出生年。不论你谁,用 2020 减去出生年份 b 得到的 2020 - b 都是你今年的年龄。只要你没满 100 岁,年龄 2020 - b 就是两位数。
 
100a + (2020 - b) 的末两位与 2020 - b 相同,等于你的年龄。
 
注. 小编发布的算法与本题目的叙述稍微不同,是:
手机号码加 20,乘25,再乘4,再加17,再减去你的出生年份。得到的数的末两位数就是你的年龄。
 
按照这个算法,由手机号码 a 和出生年份 b 算出的年龄就是 100a + 2017 - b 的末两位,也就是 2017 - b。这是2017年的年龄。
 
小编那个算法是 2017 年发布的,在 2017 年就是正确的。今年已经是 2020 年,我们将“再加17”改成“再加20”,免得你们指责他不正确。
 
点评. 手机号码 a 被乘了 100,与最后结果的末两位没有关系。你的年龄 2020 - b 根本不是从手机号码 a 算出的,而是从出生年份 b 算出来的。知道了出生年份,理所当然就知道了年龄,没有任何神秘之处。字母运算这个很简单的科学知识将它解释得清清楚楚,根本不是“科学不能解释”。
 
字母帮你巧填空
 
在如下4个空格中填入适当的数,使两行、两列的4个算式成立。
            ⬜ + ⬜  =  8
             +       + 
            ⬜ -  ⬜  =  6
             ||       || 
            13      8  
分析. 最容易想到的算法是:尝试。
 
先将第一行第一列空格试填 1。 
 
第一行 1 + ⬜ = 8 迫使空格填 7。
 
两列算式 1 + ⬜ = 13,7 + ⬜ = 8迫使第二行两个空格分别填 12,1。如下
 
           1  +  7  =  8
           +     +
         12  -  1  =  6
           ||     ||
          13     8
 
第二行算式 12 - 1 = 6 不成立。这说明第一行第一列不应该填 1。
 
你可以将 1 换成 2,3,4,...,7,8 继续试验,全都不对。怎么办?
 
你不能预先断定第一行第一列应该填哪个数。但只要这个问题有解,第一行一列那个数一定可以用一个字母来表示,比如用 x 表示。
 
第一行算式 x + ⬜ = 8 同样迫使空格填 8 - x。
 
两列算式 x + ⬜ = 13,(8 - x) + ⬜ = 8 迫使第二行两个空格分别填 13 - x,x。如下
 
    x   + (8 - x) =  8
    +           +
(13 - x) -  x     =  6
     ||          ||
    13         8
 
第一行以及两列的算式都已经成立。只须再让第二行的等式 
(13 - x) - x = 6
成立即可。这个等式左边可用加法结合律化简为 
   (13 - x) - x
= [13 + (-x)] + (-x)
= 13 + [(-x) + (-x)]
= 13 - 2x
 
于是等式化为 13 - 2x = 6。因此 2x = 13 - 6 = 7,x = 7 ÷ 2 = 3.5。第一行第一列空格只能填 3.5。各空格分别填写如下
 
         3.5 + 4.5 = 8
           +        +         
         9.5 -  3.5 = 6
          ||         ||  
         13        8 
 
两行两列的4个等式全部成立,符合要求。
 
点评. 算术和代数都是教运算,算术教的是已知数的运算,代数教的是字母运算。为什么教了已知数的运算还要教字母运算?做了例 3 和例 4 就应该有所体会。
 
只要你学会了已知数的运算,就可以把你所知道的手机号都代入例 3 去计算,发现小编的算法都是对的。但哪怕你算了几千几万个手机号,仍然不能发现算法的奥妙,于是就相信它是“科学不能解释”。但只要你想到用字母代表数,只算一次就把无穷多个手机号全部都算过了,很容易发现它的奥妙所在。
 
例 4 没有要求你用字母运算,只要你填数。但是你将具体数值试得再多也好比大海捞针,找不到正确答案。只要想到用字母代表数,只算一次就将所有的数全部审查了一遍,瓮中捉鳖将唯一正确的答案找出来了。而且,这个正确答案出乎你的意料,居然不是整数,题目也没限定必须填整数嘛。  
 
初中教材都要讲字母运算,也要强调字母运算的重要性。有什么重要性呢?很多教材都要说字母运算能够发现规律。什么是规律?规律为什么重要?一个例子不是规律,很多不同例子都满足才是规律。例 1 的
999999² = 1000000 × 999998 + 1
不是规律,(a + b)(a - b) = a² - b² 就是规律,因为其中的字母 a,b 可以换成任意两个数, 得到的等式仍然成立。这就有无穷多个例子来满足这个等式,其中有很多例子可以简化运算。
 
例 3 中你哪怕将一万个人的手机号码按小编的算法算过了,你也只能承认算法正确而没有找到它的规律,没有识破其中奥妙。只有当你用字母 a,b 分别代表任何一个人的手机号码和出生年份,算出来的结果 100a + 2020 - b 才揭示出无穷多组数据 a,b的共同规律。
 
同样地,例 4 中用 x 代表第一行第一个空格代表的数,才揭示出这个数与其余 3 个空格数的关系,这就是规律,根据这个规律才能找出满足条件的唯一解。
 
由此知道字母运算怎么能够发现规律了:算术只教了用已知数算未知数,算一次只得到一个答案。字母运算却不管已知未知都能算,不是算一个特殊的数,而是将无穷多个数一锅煮,只算一次就得出无穷多组不同数据共同满足的结论,也就是这些数据满足的共同规律。
 
很多人认为人的生命有限,因此只能认识有限的事物,不能认识无穷。字母运算算一次就适用于无穷多数据,这就是认识了无穷。为什么能够算一次管住无穷?因为无穷多不同的数满足共同的运算律,运算律就是最大的规律,也就是代数的公理。字母运算利用运算律解答问题,就是用最大的规律来得出你这个问题的小规律。
 
例 1 得出的 (a + b)(a - b) = a² - b² 是一个乘法公式,与运算律相比是一个小规律。例 3 算出的手机号码、出生年份与年龄的关系式 100a + 2020 - b 是更小的规律,其中的 100a 是说手机号码 a 与年龄无关,年龄等于 2020 - b,这也是显而易见的小规律,一点都不神奇。
 
总之,字母运算是就是用有限算无限,有限次运算来得出无穷多数据满足的共同规律,用运算律这少数几条大规律得出各个具体问题中的小规律。 
 
本文的目的是对初中学生学习字母运算的启蒙和导航,不是来教字母运算的具体算法,只教想法不教算法,自己到你的教材和课堂上去学算法。因此,还没有讲多项式的恒等变形,方程的同解变形,就直接用字母运算来解决几个精彩案例。
 
既然要解决问题,不能空口说白话,必须将结果算出来。没教恒等变形和同解变形,怎么就能够算出结果呢?不用教也能够算:直接用运算律算就行了。因为你书上教那些恒等变形、同解变形的具体算法全部都是运算律推出来的,运算律是代数运算的盘古和女娲,先让这两位老祖宗直接教你几招,尽管你算得不熟练,笨手笨脚,却是最正宗的功夫,以后再去学习和练习那些具体招数,才知道它们从何而来,才不会舍本逐末拿鸡毛当令箭。
 
几何图形应用例
 
例5. 如图1,长方形 ACBD 的长 AC = 4cm,宽 CB = 3cm,求对角线长 AB = ?        
 
解. 长方形 ACBD 面积 SACBD = 长 × 宽 = 4 × 3 = 12。
 
 
对角线 AB 把长方形 ACBD 分成两个形状大小相同的三角形 ABC,ABD,它们的面积 SABC = SABD = 12 ÷ 2 = 6 各是长方形 ACBD 面积 12 的一半,等于6。 
 
以长方形 ACBD 的对角线 AB 为一边作正方形 ABMN,面积 SABMN = AB²。 
 
如图1,正方形 ABMN 面积可以分割为 4 个形状大小相同的三角形 ABD,BME,MNP,NAQ 和一个正方形 DEPQ 的面积之和。
 
4 个三角形面积都等于 SABD = 6,总面积为 6 × 4 = 24cm² 。
 
正方形 DEPQ 边长 DE = DB - BE = 4 - 3 = 1cm。面积为 DE2 = 1cm²。
 
正方形 ABMN 面积 SABMN = 24 + 1 = 25 = AB²。由 5² = 25 知 AB = 5cm。
 
点评. 既然 CB = 3,AC = 4 时 AB = 5。是否可以猜测 CB = 4,AC = 5 时 AB = 6;CB = 5,AC = 6 时 AB = 7?
 
对任意 CB = a,AC = b,不能根据例 5 的答案猜出 AB,但可以仿照例 5 的算法算出 AB。
 
例6. 如图1,矩形 ACBD 的长 CB = a,AC = b,求对角线长 AB = ?
解. 矩形 ACBD 面积 SACBD = ab。三角形 ABC 面积 SABC = ab/2。
 
以对角线 AB 为一边作正方形 ABMN,面积 SABMN = AB²。 
 
如图1,SABMN 可以分割为 4 个形状大小相同的三角形 ABD,BME,MNP,NAQ 和一个正方形 DEPQ 的面积之和。
 
4 个三角形面积都等于 ab/2,总面积为 (ab/2)×4 = 2ab。
 
正方形 DEPQ 边长 DE = DB - BE = a - b。面积为
    DE²
= (b - a)²
= (b - a)(b - a)
= b(b - a) - a(b - a)
= bb - ba - ab + (-a)(-a)
= b² - ab -ab + a²
= b² - 2ab + a² 
 
正方形 ABMN 面积 SABMN = 2ab + (b2 - 2ab + a2) = a² + b² = AB²。
 
例7. 已知长方形长 a = 5,宽 b = 4,求对角线 AB 的长度。
解. 根据例 6 的结论,AB² = 5² + 4² = 25 + 16 = 41。只需求一个数的平方等于 41。 
 
由 6² = 36 < 41 < 49 = 72 知 6 < AB < 7,AB 等于6点几。整数部分为 6。
 
不知道 AB 的小数部分,设小数部分设为 x,则 AB = 6 + x,满足
41 = AB² = (6 + x)²。
 
例 6 得到公式 (b - a)² = b² - 2ab + a² 中的 b,a 可以分别换成 6,-x,得到 
   41
= (6+x)²
= 6² + 2×6x + x²
= 36 + 12x + x²
= 36 + x(12 + x) 
 
从而 x(12 + x) = 41 - 36 = 5,
    x
= 5÷(12 + x)
= 5÷12.…
≈ 5÷12
≈ 0.4 
 
AB ≈ 6.4。验算得 6.4² = 40.96 确实很接近 41,可知对角线 AB ≈ 6.4。
 
点评:已知一个数 c = AB 的平方 c² = 41 求 c,得到的数 c 称为 41 平方根。平方根不需要自己算,可以查平方根表,也可以用计算器。计算器算出 41 的平方根为 6.403124…,说明我们算出的近似值 6.4 的精确度很不错。
 
三角形 ABC 如果有个角 C 是直角,则 AC,BC 称为直角边,AB 称为斜边。根据例 6 得到三边长度 BC = a,AC = b,AB = c 的关系 a² + b² = c²,称为勾股定理。
 
例8. 如果正整数 a,b,c 满足 a² + b² = c² ,就称 (a,b,c) 为一组勾股数。
求勾股数 (5,b,c)。  
 
解. 由 5² + b² = c2 得 c² - b² = 5² = 25。于是  (c + b)(c - b) = c² - b² = 25。
 
正整数 c + b > c - b 且乘积为 25。
 
25 分解为大小不同的两个正整数的乘积,只能 25 = 25×1。
 
只能是 c + b = 25,c - b = 1。
 
两式相加得 (c + b) + (c - b) = 26,也就是 (c + b) + (c - b) = c + b + c - b = 2c =26。
 
因此 c = 26÷2 = 13。
 
由 c + b = 13 + b = 25 得 b = 25 - 13 = 12。
 
经验证 5² + 12² = 25 + 144 = 169 = 13² 确实成立。 (5,12,13) 确实是勾股数。
 
注. 当 a = p 为奇素数,仿照例 8 由 p² = c² - b² = (c + b)(c - b) 得 c + b = p²,c - b = 1。
得勾股数
(a,b,c) = (p,(p² - 1)/2,(p² + 1)/2) 及
(2a,2b,2c) = (2p,p² - 1,p² + 1)。
 
对任意整数 m > 1,(2m)² + (m² - 1)² = (m² + 1)² 都成立,(2m,m² - 1,m² + 1) 都是勾股数。
 
更一般地,对任意整数 m > n > 0,易验证 (2mn,m² - n²,m² + n²) 是勾股数。



推荐 1