【编者按】江苏卫视的节目《最强大脑》第一季掀起了收视的热潮,今年即将迎来第二季,其流行语“让科学流行起来”也引起了大家的共鸣.本期专栏我们取名《数学大脑》以作呼应,将对第一季节目中有关数学的部分做一些探究.也希望同学们能边看边思考,让你的数学大脑转起来!
周玮与速算
有一期,一位被称为“中国雨人”的选手周玮引起了社会的普遍关注,他的速算能力毋庸置疑,至少大部分人不具备如此能力.
作为周玮本人,他的开高次方根的速算能力值得肯定,其中的算法也值得进一步研究,而作为普通人并对此感兴趣的我们,就要好好想想其中有何捷径可走,速算能力并非仅仅依托于天赋.
今天先请大家读一读华罗庚先生的一篇小短文的节选,随后会向大家展示一个神奇的数学魔术,最后,我们再来看看,对于周玮的开高次方根有没有“速算”的办法.
提问者写下一个201位的数:
916 748 679 200 391 580 986
609 275 853 801 624 831 066
801 443 086 224 071 265 164
279 346 570 408 670 965 932
792 057 674 808 067 900 227
830 163 549 248 523 803 357
453 169 351 119 035 965 775
473 400 756 816 883 056 208
210 161 291 328 455 648 057
801 588 067 711
解答者马上回答:这数的23次方根等于9位数546 372 891.
《环球》杂志的一篇文章中是这样说的:印度有一位37岁的妇女沙昆塔拉在计算这道题时速度超过了一台最先进的电子计算机.这台在美国得过奖的最现代化、最尖端的产品Univac 1180型电子计算机在算这道题时,要先馈人近2万个指令和数字单元,然后才能开始计算.它整整用了1 min才算出结果.而沙昆塔拉在教授在黑板上用了4min写出这个201位数后,仅用50 s就算出了以上的答案.美国报纸称她为数学魔术师,轰动一时!文章末尾还神秘地说,在她快生孩子的一个星期,她的计算能力出了问题.
面对这样的问题怎么办?
看到上述消息,可能有以下几种态度:一是惊叹,望尘莫及,钦佩之至,钦佩之余也就罢了.二是不屑一顾,我是高等数学专家,岂能为这些区区计算而浪费精力.三是我掌握着快速电子计算机,软件有千千万,她一次胜了我算个啥!老实说,有上述这些思想是会妨碍进步的.第一种态度是没出息,不想和高手较量较量.第二种态度是自命不凡.实际上连计算也怕的人,能在高等数学上成为权威吗?即使能成,也是“下笔虽有千言,胸中实无一策”,瞧不起应用,又对应用一无所能的人.第三种是固步自封,不想做机器的主人.动脑筋是推进科学发展的动力之一,而勤奋、有机会就锻炼是增长我们能耐的好方法.人寿几何!我并不是说碰到所有的问题都想,而是说要经常动脑筋,来考验自己.
在我们见到这问题的时候,首先发现文章中答数的倒数第二位错了,其次我们用普通的计算器(Sharp 506)可以在20 s内给出答数.那位教授在黑板上写下那个201位数用了4 min,实际上在他写出 8个数字后,我们就可算出答数了.所以说,沙昆塔拉以50s对1 min胜了Univac 1180,而我们用Sharp 506小计算器以 220 s胜了沙昆塔拉的50 s.但我们所靠的不是天才,而是普通人都能学会的方法.让我从头说起吧!
从开立方说起
文章中提到,沙昆塔拉在计算开方时,经常能纠正人们提Jm的问题,指出题目出错了,可见他们是共同约定开方是开得尽的.现在我们也做这样的约定,即开方的答数都是整数.
我国有一位少年,能在1min内开6位数的立方.少年能想得出这个方法是值得称道的,但美中不足之处在于他没有把方法讲出来,因而搞得神秘化了.当然也考了人们,为什么少年能想得出的方法,一些成年人就想不出来,反而推波助澜造成过分的宣扬?
这问题对我是一个偶遇:在飞机上我的一位助手借了邻座一位香港同胞的杂志看,我从旁看到一个数59 319,希望求这数的立方根.我脱口而出答数是39.他问为什么,我说,前二位不是说明答数的首位是3吗?尾数是9不是说明答数的末位应当是9吗?因此答数不该是39吗?
然后,我告诉他,我的完整想法是:把六位数开立方,从前三位决定答数的第一位,答数的第二位根据原数的末位而定:2,8互换,3,7互换,其他照旧(这是因为1,2,3,4,5,6,7,8,9立方的末位分别为1,8,7,4,5,6,3,2,9).例如314 432的立方根是68,前三位决定6,末位是2,它决定答数的末位是8.
我们怎样看出答数倒数第二位
是错的
这一点比较难些,要运用一个结果:即α23的最后两位数和α3的最后两位数是完全相同的.
91 3的最后两位数是71而不是11,而71 3的最后两位数才是11,因此答数中的9应当改为7.先不管出现这个差错的原因是什么,我们这里已经做了一个很好的习题.想不到竟是Univac 1180把题目出错了,这事我们后面再讲它.
我们来证明α23的最后两位数和α3的最后两位数相同.当a=2或5时,容易直接验算.今假定以不能被2和5除尽,我们只要证明a20的末两位是01就够了.首先因α是奇数,α2-1总能被8除尽,所以α20-1当然也能被8除尽.其次,因α4-1=(α-1)(α+l)[(α-2)(α+2)+5],
α不是5的倍数,所以α-2,α-1,αa+1,α+2中肯定有一个是5的倍数.即b=α4-1是5的倍数,而
α20-1=(b+1)5-1=b5+5b4+lOb3+lOb2 +5b.
因而α20-1是25的倍数.从而α20-1是100的倍数.具备些数论知识的人也可从费马小定理推出来.
我们怎样算
我们用的原则是:如果解答是L位整数,我们只要用前L位(有时只要L-1位)或后L位就够了.用后L位的方法见附录二,先说前一方法.以前当那位教授说要开201位数的23次方时,以23除201余17,就能预测答数是9位数.当教授写到第六、七位时,我们就在Sharp 506上按这六位和七位数,乘以10 16,然后按开方钮算出
这样我们定出了答数的前七位:5463728,后二位已由上节的方法决定了,因此答数应该是546 372 871.其实,更进一步考虑,只需利用这个201位数的前八位数字就能在计算器上得到它的23次方根(证明见下面的附记):
但不幸的是,把这个数乘23次方,结果与原来给的数不相符(见附录一).与原题比较,发现原题不但尾巴错了,而且在第八和第九位之间少了一个6.竟想不到U nivac1180把题目出错了,也许是出题的人故意这样做的,为什么沙昆塔拉这次没能发现这个错误?看来她可能也是根据前八位算出了结果,而没对解答进行验算.
我们的习题没有白做,答数错了我们发现了,连题目出错了我们也纠正了.
结论是:在教授写到91 674 867时,我们在计算器上按上这八个数字.再乘l0 16.然后按钮开23次方就可算出答案,总共约用20 s就够了,也就是比那个教授写完这个数还要快3 min 40 s,比沙昆塔拉快了4.5min.
既然已经知道答数是九位数,或者说在要求答数有九位有效数字时,我们就只需把前八位或九位数字输入计算机就够了,而无需把201位数全部输入机器,进行一些多余的计算.
(注:附记略)
多余的话
我不否认沙昆塔拉这样的计算才能.对我来说,不要说运算了,就是记忆一个六、七位数都记不住.但我总觉得多讲科学化比多讲神秘化好些,科学化的东西学得会,神秘化的东西学不会,故意神秘化就更不好了.有时传播神秘化的东西比传播科学更容易些.在科学落后的地方,一些简单的问题就能迷惑人.在科学进步的地方,一些较复杂的问题也能迷惑人.看看沙昆塔拉能在一个科学发达的国家引起轰动,就知道我们该多么警惕了,该多么珍视在实践中考验过的科学成果了,该多么慎重地对待一些未到实践中去过而夸夸其谈的科学能人了.
同时也可以看到,手中拿了最先进的科学工具,由于疏忽或漫不经心而造成的教训.现代计算工具能计算得很快很准,但也有一个缺点,一旦算错了,不容易检查出来.对于计算像201位数字开23次方这类的问题——多少属于数学游戏性质的问题,算错了无所谓,而对在实际运用中的问题算错了就不是玩的.“二万条指令”出错的可能性多了,而在演算过程中想办法少用或不用计算机演算,检查起来就不那么难了.这说明人应该是机器的主人,而不是机器的奴隶.至于大算一阵吓唬人的情况就更不值一提了.
(注:附录略)