分享

华罗庚:从沙昆塔拉快速计算所想到的轰动听闻的消息

 老庄. 2014-01-22
 
天才与锻炼

 ——从沙昆塔拉快速计算所想到的轰动听闻的消息

 

  提问者写下一个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.

  《环球》杂志的一篇文章中是这样说的(请参阅《环球》1982年第3期《胜过电子计算机的人》一文):印度有一位37岁的妇女沙昆塔拉在计 算这道题时速度超过了一台最先进的电子计算机.这台在美国得过奖的最现代化、最尖端的产品Univac 1180型电子计算机在算这道题时,要先馈入近2万个指令和数字单元,然后才能开始计算.它整整用了一分钟时间才算出结果.而沙昆塔拉在教授在黑板上用了 4分钟写出这个201位数后,仅用50秒钟就算出了以上的答案.美国报纸称她为数学魔术师,轰动一时!文章末尾还神秘地说,在她快生孩子的一个星期,她的 计算能力出了问题.

 

面对这样的问题怎么办?

 

  看到上述消息,可能有以下几种态度:一是惊叹,望尘莫及,钦佩之至,钦佩之余也就罢了.二是不屑一顾,我是高等数学专家,岂能为这些区区计 算而浪费精力.三是我掌握着快速电子计算机,软件有千千万,她一次胜了我算个啥!老实说,有上述这些思想是会妨碍进步的.第一种态度是没出息,不想和高手 较量较量.第二种态度是自命不凡.实际上连计算也怕的人,能在高等数学上成为权威吗?即使能成,也是下笔虽有千言,胸中实无一策,瞧不起应用,又对应 用一无所能的人.第三种是固步自封,不想做机器的主人.动脑筋是推进科学发展的动力之一,而勤奋、有机会就锻炼是增长我们能耐的好方法.人寿几何!我并不 是说碰到所有的问题都想,而是说要经常动脑筋,来考验自己.

  在我们见到这问题的时候,首先发现文章中答数的倒数第二位错了,其次我们用普通的计算器(Sharp 506)可以在20秒内给出答数.那位教授在黑板上写下那个201位数用了4分钟,实际上在他写出8个数字后,我们就可算出答数了.所以说,沙昆塔拉以50″对1′胜了Univac 1180,而我们用Sharp 506小计算器以-3′40″胜了沙昆塔拉的50″.但我们所靠的不是天才,而是普通人都能学会的方法.让我从头说起吧!

 

从开立方说起

 

  文章中提到,沙昆塔拉在计算开方时,经常能纠正人们提出的问题,指出题目出错了,可见他们是共同约定开方是开得尽的.现在我们也做这样的约定,即开方的答数都是整数.

  我国有一位少年,能在一分钟内开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.

  沙昆塔拉可以脱口而出地回答188,132,517的立方根是573.当然188决定了首位5,末位7决定了3,但读者试想一下,中间的7怎样算?

  归纳起来可以看出有两个方法:一个由头到尾,一个由尾到头.

  习题:求90,224,199的五次方根.

 

我们怎样看出答数倒数第二位是错的

 

  这一点比较难些,要运用一个结果:即a23的最后两位数和a3的最后两位数是完全相同的.

  913的最后两位数是71而不是11,而713的最后两位数才是11,因此答数中的9应当改为7.先不管出现这个差错的原因是什么,我们这里已经做了一个很好的习题.想不到竟是Univac1180把题目出错了,这事我们后面再讲它.

  附记 我们来证明a23的最后两位数和a3的最后两位数相同.当a=2或5时,容易直接验算.今假定a不能被2和5除尽,我们只要证明a20的末两位是01就够了.首先因a是奇数,a2-1总能被8除尽,所以a20-1当然也能被8除尽.其次,因

          a4-1=(a-1)(a+1)[(a-2)(a+2)+5],

 

  a不是5的倍数,所以a-2,a-1,a+1,a+2中肯定有一个是5的倍数.即b=a4-1是5的倍数,而

        a20-1=(b+1)5-1=b5+5b4+10b3+10b2+5b.

  因而a20-1是25的倍数.从而a20-1是100的倍数.具备些数论知识的人也可从费尔马定理推出来.

 

我们怎样算

 

  我们用的原则是:如果解答是L位整数,我们只要用前L位(有时只要L-1位)或后L位就够了.用后L位的方法见附录二,先说前一方法.以前

  当那位教授说要开201位数的23方时,以23除201余17,就能预测答数是9位数.当教授写到第六、七位时,我们就在Sharp 506上按这六位和七位数,乘以1016,然后按开方钮算出

   (9.16748×1016)1/23=5.46372873,

   (9.167486×1016)1/23=5.46372892,

  这样我们定出了答数的前七位:5,463,728,后二位已由上节的方法决定了,因此答数应该是546,372,871.其实,更进一步考虑,只需利用这个201位数的前八位数字就能在计算器上得到它的23次方根(证明见下面的附记): 



  但不幸的是,把这个数乘23次方,结果与原来给的数不相符(见附录一).与原题比较,发现原题不但尾巴错了,而且在第八和第九位之间少了一个6.竟想不到Univac 1180把题目出错了,也许是出题的人故意这样做的.为什么沙昆塔拉这次没能发现这个错误?看来她可能也是根据前八位算出了结果,而没对解答进行验算.

  我们的习题没有白做,答数错了我们发现了,连题目出错了我们也纠正了.

  结论是:在教授写到91,674,867时,我们在计算器上按上这八个数字。再乘1016,然后按钮开23方就可算出答案,总共约用20″就够了,也就是比那个教授写完这个数还要快3分40秒,比沙昆塔拉快了4分半钟.

  既然已经知道答数是九位数,或者说在要求答数有九位有效数字时,我们就只需把前八位或九位数字输入计算机就够了,而无需把201位数全部输入机器,进行一些多余的计算.

  附记 以a表示那个201位数,b也表示一个201位数,它的前L位与a相同,后面各位都是零.由中值公式,可知存在一个ξ(b<ξ<a)使 


  

     当取L=8时,上式小于1/2,由b1/23的前九位(第十位四舍五入)就可给出a1/23.


虚构

 

  下面讲一个虚构的故事,在沙昆塔拉计算表演后,有一天教授要给学生们出一道计算题.一位助手取来了题目.是一个871位数开97方,要求答案有 9位有效数字.教授开始在黑板上抄这个数:

456,378,192,765,431,892,634,578,932,246,653,811,594,667,

891,992,354,467,768,892,……

    当抄到二百多位后,教授的手已经发酸了.唉!他叹了一口气,把举着的手放下甩了一下.这时一位学生噗嗤一声笑了起来,对教授说,当您写出八位数字后, 我已把答案算出来了,它是588,415,036.那位助手也跟着笑了.他说,本来后面这些数字是随便写的,它们并不影响答数.这时教授恍然大悟,哈 哈,我常给你们讲有效数字,现在我却把这个概念忘了.

 

多余的话

 

  我不否认沙昆塔拉这样的计算才能.对我来说,不要说运算了,就是记忆一个六、七位数都记不住.但我总觉得多讲科学化比多讲神秘化好些,科学 化的东西学得会,神秘化的东西学不会,故意神秘化就更不好了.有时传播神秘化的东西比传播科学更容易些.在科学落后的地方,一些简单的问题就能迷惑人.在 科学进步的地方,一些较复杂的问题也能迷惑人.看看沙昆塔拉能在一个科学发达的国家引起轰动,就知道我们该多么警惕了,该多么珍视在实践中考验过的科学成 果了,该多么慎重地对待一些未到实践中去过而夸夸其谈的科学能人了.

  同时也可以看到,手中拿了最先进的科学工具,由于疏忽或漫不经心而造成的教训.现代计算工具能计算得很快很准,但也有一个缺点,一旦算错 了,不容易检查出来.对于计算象201位数字开23次方这类的问题——多少属于数学游戏性质的问题,算错了无所谓,而对在实际运用中的问题算错了就不是玩 的.二万条指令出错的可能性多了,而在演算过程中想法少用或不用计算机演算,检查起来就不那么难了.这说明人应该是机器的主人,而不是机器的奴隶.至 于大算一阵吓唬人的情况就更不值一提了.这里我们还可以看到基本功训练的重要性.如果基本功较差,那么就是使用大型计算机来演算201位数开23次方也要 1分多钟才能算完.而有了很好的基本功,就是用小计算器也能花比1分钟少的时间算出来.

  这是一篇可写可不写的文章,我之所以写出的原因,在于我从沙昆塔拉这件事中得到了启发,受到教育,我想,这些也许对旁人也会是有用的.

 

(作者:华罗庚)

 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多